Обновить запись с PDO, используя параметры - PullRequest
0 голосов
/ 28 января 2012

Я пытаюсь обновить таблицу базы данных с помощью PDO, но во избежание утечек из системы безопасности я использую параметры в своем запросе.

Я получаю эту ошибку:
exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: parameter was not defined' in D:\xampp\htdocs\logansarchive\admin\do.article.php:25 Stack trace: #0 D:\xampp\htdocs\logansarchive\admin\do.article.php(25): PDOStatement->execute() #1 {main}

Вот мой код:

$sql = "update articles set".
    "category = :cat,".
    "articletitle = :title,".
    "articlecontent = :content".
    "where articleid = :target";

$result = $dbh->prepare($sql);
$result->bindParam(":cat", $category);
$result->bindParam(":title", $title);
$result->bindParam(":content", $content);
$result->bindParam(":target", $target);
$result->execute();

Я нашел это Невозможно обновить строки с помощью PDO это выглядит довольно похоже на то, что я делаю, но я не уверен, как исправить мой код, основываясь на этом, поскольку я не вижу никаких проблем, перечисленных там парнем, который ответил на этот вопрос.

Любая помощь будет принята с благодарностью.

Спасибо за ваше время!

Ответы [ 2 ]

0 голосов
/ 05 февраля 2012

оба наших кода верны, но в операторе sql есть две небольшие ошибки.если вы откроете свой sql-файл, то увидите, что вы забыли два пробела ... один в строке один после набора "обновить набор статей", а второй в строке 4 после: content "articlecontent =: content" ... теперь он должен работать!

0 голосов
/ 28 января 2012
$sql = "update articles set ". // whitespace after set
"category = :cat,".
"articletitle = :title,".
"articlecontent = :content ". // whitespace after :content
"where articleid = :target";

$result = $dbh->prepare($sql);
$result->bindParam(":cat", $category, PDO::PARAM_INT);
$result->bindParam(":title", $title, PDO::PARAM_STR);
$result->bindParam(":content", $content, PDO::PARAM_STR);
$result->bindParam(":target", $target, PDO::PARAM_INT);
$result->execute();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...