无法在SQLite中准备语句

0 php sqlite

以下代码有什么问题?

(!)警告: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)

Ger*_*der 6

您不能在预准备语句中使用表名或列名作为占位符.您只能绑定值.

像这样使用它:

$query = "INSERT INTO ". DB::DB_NAME ." VALUES(:ID, :Title, :Content);";
Run Code Online (Sandbox Code Playgroud)