Почему не работает этот простой оператор вставки (PDO)? - PullRequest
0 голосов
/ 10 января 2012

Код прост - возьмите значение из формы, вставьте его в базу данных mysql. Вот фрагмент кода:

//connect to DB
$dbh = new PDO($db_pdo, $db_user_name, $db_password);

//capture value from form
$first_name = $_POST['first_name'];

//insert value into DB (doesn't work- no new entry created in requests)
$dbh->exec("INSERT INTO requests(first_name) VALUES($first_name)");

//this echo statement works (outputs the value of $first_name):
echo "\$first_name ".$first_name;

//this insert statement works: 
$dbh->exec("INSERT INTO requests(first_name) VALUES('oleg')");

1 Ответ

3 голосов
/ 10 января 2012

Правильно, вы должны процитировать свою строку.

$dbh->exec("INSERT INTO requests(first_name) VALUES('$first_name')");

Но этот код уязвим для SQL-инъекций. Я не уверен, как вы защищаетесь от этого в PHP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...