Я перестраиваю свой текущий скрипт для поддержки PDO вместо MySQL запросов. Я застрял в этом вставном запросе, хотя он не выполняется, и я не знаю, почему.PDO Вставить запрос не работает
Google'd немного, но ничего не мог найти.
try
{
$sql = "INSERT INTO
news (news_name,
news_description,
news_author,
news_date,
news_link,
news_category)
VALUES ('" . trim($_POST['news_name']) . "',
'" . trim($_POST['news_description']) . "',
" . $_SESSION['admin_id'] . ",
NOW(),
'" . trim($_POST['news_link']) . "',
'" . trim($_POST['news_category']) . "'
)";
$results = $db->exec($sql);
$id = $db->lastInsertId();
if($results)
{
echo $id;
echo '<p>News item added succesfully</p>';
echo '<a href="admin.php">Click here to return to the admin panel</a>';
}
}
catch(PDOException $e)
{
echo $e->getMessage();
}
}
?>
Не связывайте значения в свои запросы. Прочтите doco и примеры для ['PDO :: prepare'] (http://php.net/manual/pdo.prepare.php), [' PDOStatement :: bindParam'] (http://php.net/manual /pdostatement.bindparam.php)/['PDOStatement :: bindValue'] (http://php.net/manual/pdostatement.bindvalue.php) и [' PDOStatement :: execute'] (http://php.net /manual/pdostatement.execute.php) – Phil
Кроме того, вам нужно установить атрибут 'PDO :: ATTR_ERRMODE' в' PDO :: ERRMODE_EXCEPTION', если вы хотите, чтобы он выдавал исключения. См. ['PDO :: setAttribute'] (http://php.net/manual/pdo.setattribute.php) – Phil