MySQL Insert с использованием PDO в переполнении стека

Я пытался получить форму для вставки записей в базу данных MySQL, используя форму, но по какой-то причине это вызывает у меня ошибку, и я не могу понять, почему.

Вот код, который обрабатывает запрос:

if ($_SERVER['REQUEST_METHOD']=='POST'){

// database connection

try {
$dbh = new PDO('mysql:host='.$host.';dbname='.$dbName, $dbUser, $dbPass);
$dbh -> setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$dbh -> exec("SET NAMES 'utf8'");

} catch (Exception $e) {
echo "Error!: " . $e->getMessage() . "<br/>";
die();
}

// new data

$title = $_POST["txtTitle"];

$description = $_POST["txtDesc"];

$content = $_POST["txtContent"];

$sql = "INSERT INTO tblPageContent
SET (PageTitle, Description, PageContent)
VALUES (:title, :desc, :content)";

try {
$update = $dbh->prepare($sql);
$update->bindParam(":title",$title, PDO::PARAM_STR);
$update->bindParam(":desc",$description, PDO::PARAM_STR);
$update->bindParam(":content",$content, PDO::PARAM_STR);

$update->execute();
$id = $update->dbh->lastInsertId();
$update->dbh->commit();
echo $id;

} catch (Exception $e) {

echo "Data could not be updated in the database.";
echo $e;
exit;
}
}

Всякий раз, когда я пытаюсь использовать его, я получаю следующее:

исключение «PDOException» с сообщением «SQLSTATE [42000]: синтаксическая ошибка
или нарушение прав доступа: 1064 У вас ошибка в синтаксисе SQL; проверять
руководство, которое соответствует вашей версии сервера MySQL для права
синтаксис для использования около ‘(PageTitle, Description, PageContent) VALUES
(«Награды», «Это тест», «в строке 2»

Я пытался настроить синтаксис SQL, но все еще не могу заставить его работать. Есть что-то, чего я здесь не хватает?

-1

Решение

Ваш insert синтаксис НЕПРАВИЛЬНЫЙ.

Правильный синтаксис:

insert into tblPageContent (pageTitle, Description, PageContent)
values (:title, :desc, :content)

я советую тебе есть справочное руководство по MySQL под рукой

4

Другие решения

В вашем SQL, возьмите SET до первого (, Вы используете SET в обновлениях, а не во вставках.

0

По вопросам рекламы [email protected]