вставить амперсанд (&) в MySQL с PDO PHP? - PullRequest
2 голосов
/ 10 февраля 2012

Я использую PDO для вставки значений в MySQL

Я делаю что-то вроде этого

$sql = $db->prepare("INSERT INTO table(value) VALUES(?)");
$sql -> execute(array($value));

Я заметил, что если я наберу текст & в поле ввода, он будет удален при вставке mysql. Я думаю, это хорошо, потому что это показывает, что MySQL инъекция защищена? Ну, что, если я хотел бы иметь только это значение в виде текста, такого как: beer & wine

Любые предложения о том, что делать?

1 Ответ

1 голос
/ 10 февраля 2012

Полагаю, это хорошо

Это явно ПЛОХО. База данных, которая не может хранить определенные символы, - ерунда. Представьте, что один был использован на этом сайте. Вы вообще не смогли задать свой вопрос!

это показывает, что MySQL инъекция защищена?

Это ничего не показывает. Амперсанд не имеет ничего общего с инъекциями, и, как я сказал выше, удаление символов не имеет ничего общего с защитой от инъекций.

он удаляется при вставке mysql.

Это не так. Это так, как вы это видите. Вы видите это не в базе данных , а где-то еще. Это твоя проблема.

Проверьте ваши данные перед вставкой.
Проверьте вашу базу данных . Найди свой амперсанд нетронутым.
Затем проследите ваш поток данных, чтобы найти место, где теряется амперсанд.
Тогда задайте вопрос.

...