Intereting Posts
Лучший способ получить объект запроса из форм Symfony? Запрос MySQL не работает при использовании переменной php в where where Перечислить всех пользователей в LDAP с помощью PHP проверьте, имеет ли массив одно или несколько пустых значений Как использовать переменный внутренний параметр $ _GET? Пример: ($ _GET ) Получить видео длительность файла, размещенного на Amazon S3 Ограничения внешнего ключа с помощью dbForge Query Builder Регулярное выражение для поиска и замены @ упоминает как твиттер Мой код регистрации Sql не работает Настройка Cronjob в Windows Xampp Флажок не отправляется в POST с помощью PHP Как отсортировать многомерный массив по одному из полей внутреннего массива в PHP? Объекты symfony i18n (Doctrine) получают определенную культуру Представление IP-адреса в базе данных Maxmind Geolitecity заполнение выпадающего окна, основанное на выборе другого раскрывающегося списка с использованием php, mqsql и ajax

Слэш в таблицах MySQL, но с использованием PDO и параметризованных запросов. Что происходит?

Хорошо, поэтому мой код для обновления моих таблиц базы данных отличается от следующих факторов:

$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 будут помещать их независимо от того, нужны они или нет.