我正在尝试使用PDO更新MySQL中的数据。
我已经设置了下面的代码,但收到错误
SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法>有错误;请检查与您的 MySQL 服务器版本相对应的手册>以获取在"(h1,文本)值"附近使用的正确语法(第 1 行的"废话")
if (isset($_POST['Submit']))://if admin wants to edit category
$h1 = $_POST['h1'];
$text = $_POST['text'];
$servername = "localhost";
$username = "user";
$password = "password";
$dbname = "dbname";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// Prepare statement
$stmt = $conn->prepare('UPDATE sections (h1, text) values (:h1, :text) WHERE id=1');
$stmt->bindParam(':h1', $h1);
$stmt->bindParam(':text', $text);
// execute the query
$stmt->execute();
// echo a message to say the UPDATE succeeded
echo $stmt->rowCount() . " records UPDATED successfully";
}
catch(PDOException $e)
{
echo $sql . "<br>" . $e->getMessage();
}
$conn = null;
更新语法应为:
UPDATE table_name SET `field1` = new-value1, `field2` = new-value2.
您的查询应为:
UPDATE sections SET `h1` = :h1, `text` = :text WHERE id = 1;
请参阅更新查询语法
文本是MySQL中的保留字。
按如下方式编写您的查询:-
UPDATE sections SET `h1` = :h1, `text` = :text WHERE id = 1;