PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 3
Patriot123 Отправлено: 05 Июля, 2014 - 19:49:46 • Тема: PDO и кавычки • Форум: Работа с СУБД

Ответов: 8
Просмотров: 2459
LIME пишет:
Цитата:
"INSERT INTO comments (id, createdate, bodytext) VALUES (null, now(), :bodytext)"

из цитаты выше должно быть понятно что кривой запрос
а в потертых сообщениях я на это намекал
еслиб ТС сконценрировался на чтении ответа он бы понял
(Добавление)
хотя я возможно не знаю особенностей PDO
не?


Я даже не представляю в каком месте этого запроса можно сделать ошибку? Выполнять его не пробовал и прочесть хотя бы? Элементарный инсерт!


Проблема решилась апдейтом php до версии 5.5.9. Код остался прежним.
Patriot123 Отправлено: 05 Июля, 2014 - 15:08:28 • Тема: PDO и кавычки • Форум: Работа с СУБД

Ответов: 8
Просмотров: 2459
Есть скрипт с использованием PDO:
CODE (php):
скопировать код в буфер обмена
  1. $DBH = new PDO("mysql:host=".$db_host.";dbname=".$db_name.";charset=utf8", $db_login, $db_password);
  2. $DBH->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
  3. $DBH->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
  4. $DBH->exec("set names utf8");
  5. $sql = "INSERT INTO comments (id, createdate, bodytext) VALUES (null, now(), :bodytext)";
  6. $STH = $DBH->prepare($sql);
  7. $params = array(':bodytext'=>'Some " text ');
  8. $STH->execute($params);


Естественно это дело все крашется из-за кавычки в передаваемом параметре.
Можно конечно сначала все это через addslashes прогнать. Но разве в PDO не предусмотрено изначально защита от кавычек\инъекций? Что за костыли такие! Через гугл нашел, что можно попробовать так:

CODE (php):
скопировать код в буфер обмена
  1. $STH->bindValue(':bodytext', 'Some " text ', PDO::PARAM_STR);


Еще не пробовал. Но переписывать кучу кода из-за этого не очень хочется. Неужели нет другого выхода?
Patriot123 Отправлено: 06 Января, 2013 - 14:40:01 • Тема: Как отключить mysqlnd в PHP в Windows • Форум: Администрирование Windows

Ответов: 1
Просмотров: 1734
Конфиг такой:
Windows Server 2008 SP2, Mysql 5.1.53, PHP 5.4.9, IIS7, PHP подключен как FastCGI.

Был PHP 5.2.13. После его обновления до версии 5.4.9 IIS7 начал тормозить. Если раньше сайт открывался по одному щелчку моментально, то сейчас сервер задумывается на 1-3 секунды и выдает результат. Этот факт очень напрягает, но требуется использовать PHP не ниже этой версии. Методом научного тыка подозрение пало на mysqlnd - это самое разительное различие между версиями PHP. При запуске скриптов, которые не используют MySQL, коннект проходит как и прежде быстро. Подскажите, что делать и как исправить? Или как отключить этот mysqlnd в PHP под Windows, ибо нашел только информацию для *nix систем.

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB