Хорошо, поэтому мой код для обновления моих таблиц базы данных отличается от следующих факторов:
$query = " insert into Comment (Comment, CommentDate, Rating, UserRid) values (:comment, now(), 0, :userrid )" ; try { $db_conn = new PDO('mysql:host='.$db_server.';dbname='.$db_name, $db_username, $db_password ); $db_conn->beginTransaction(); $prep = $db_conn->prepare($query); $prep->bindParam(':comment', $comment, PDO::PARAM_STR, 500); $prep->bindParam(':userrid', $userrid, PDO::PARAM_INT, 20); $prep->execute(); $db_conn->commit(); } catch (PDOException $e) { $db_conn.rollBack(); echo "Error!: " . $e->getMessage() . "<br/>"; die(); }
В приведенном выше комментарии добавляется через сообщение с другой страницы. Userrid устанавливается надлежащим образом через вызов функции. Все работает правильно, за исключением того, что в таблицу добавляются косые черты.
Все, что я прочитал, говорит, что для того, чтобы обойти слэш, всякий раз, когда кто-то вводит в апострофе, что я должен использовать параметризованные запросы. Если я не ошибаюсь, я уверен, что это то, что я делаю. Я что-то упускаю? Кто-нибудь может сообщить мне, что я не делаю правильно?
Заранее спасибо, Майкл
Вероятно, ou've magic_quotes_gpc()
включен, вам нужно сделать что-то вроде этого:
if (get_magic_quotes_gpc() == true) { $comment = stripslashes($comment); $userrid = stripslashes($userrid); }
Если вы используете PHP 5.3+, вы можете избавиться от всех магических цитируемых переменных, разместив следующие строки кода в верхней части вашего файла:
if (get_magic_quotes_gpc() === 1) { $_GET = json_decode(stripslashes(json_encode($_GET, JSON_HEX_APOS)), true); $_POST = json_decode(stripslashes(json_encode($_POST, JSON_HEX_APOS)), true); $_COOKIE = json_decode(stripslashes(json_encode($_COOKIE, JSON_HEX_APOS)), true); $_REQUEST = json_decode(stripslashes(json_encode($_REQUEST, JSON_HEX_APOS)), true); }
Если вы используете более низкую версию PHP, вы должны взглянуть на эту страницу .
Это мешает вам добавлять их , но такие вещи, как magic_quotes_gpc
будут помещать их независимо от того, нужны они или нет.