以下代码有什么问题?
(!)警告:SQLite3 :: prepare()[sqlite3.prepare]:无法准备语句:1,在":DB_NAME"附近:第91行的C:\ xampp\htdocs\memo\DB.php中的语法错误
调用堆栈
#时间记忆功能位置
1 1.0436 335032 {main}()..\memo.php:0
2 1.0471 370312备忘录 - > __ construct()..\memo.php:22
3 1.0524 371112 DB-> addRow()..\memo.php:17
4 1.0524 371240准备()..\DB.php
/**
* Add row to DB table.
* @return bool
*/
public function addRow($idVal, $titleStr, $contentStr){
$query = "INSERT INTO :DB_NAME VALUES(:ID, :Title, :Content);";
$stmt = $this->db->prepare($query);
$stmt->bindValue(":DB_NAME", DB::DB_NAME);
$stmt->bindValue(':id', $idVal, SQLITE3_INTEGER);
$stmt->bindValue(":Title", $titleStr, SQLITE3_TEXT);
$stmt->bindValue(":Content", $contentStr, SQLITE3_TEXT);
return $stmt->execute();
}
Run Code Online (Sandbox Code Playgroud)
您不能在预准备语句中使用表名或列名作为占位符.您只能绑定值.
像这样使用它:
$query = "INSERT INTO ". DB::DB_NAME ." VALUES(:ID, :Title, :Content);";
Run Code Online (Sandbox Code Playgroud)