我试图通过PHP脚本对Sqlite3数据库进行更新,但是我遇到了一些我不理解的错误。
PHP警告:SQLite3 :: prepare():无法准备语句:1,没有这样的列::第16行的C:\ UwAmp \ www \ save.php中的列,referer:http://localhost/Canvas.html
PHP致命错误:未捕获错误:在C:\ UwAmp \ www \ save.php中调用布尔成员函数
bindParam()
:17 \ n堆栈跟踪:\ n#0 {main} \ n抛出第17行的C:\ UwAmp \ www \ save.php,referer:http://localhost/Canvas.html
以下是我正在使用的PHP代码示例:
$url = $_POST['newURL'];
$name = $_POST['saveName'];
$index = $_POST['saveNum'];
$user = $_POST['username'];
$db = new SQLite3('Users.db');
$statement = $db->prepare("UPDATE Canvas_Saves SET ':column' = ':url' WHERE User = ':user'");
$statement->bindParam(':url', $url);
$statement->bindParam(':user', $user);
if($index ===1){
$statement->bindParam(':column', 'Save1',SQLITE3_TEXT);
}
else if($index ===2){
$statement->bindParam(':column', 'Save2',SQLITE3_TEXT);
}
else if($index ===3){
$statement->bindParam(':column', 'Save3',SQLITE3_TEXT);
}
else if($index ===4){
$statement->bindParam(':column', 'Save4',SQLITE3_TEXT);
}
$statement->execute();
第16行是$ db-> prepare语句。 我试图研究这个,但我没有运气。感谢您提供任何帮助。
答案 0 :(得分:0)
您可以使用此
$url = $_POST['newURL'];
$name = $_POST['saveName'];
$index = $_POST['saveNum'];
$user = $_POST['username'];
$db = new SQLite3('Users.db');
$col="";
if($index ===1){
$col="Save1";
}
else if($index ===2){
$col="Save2";
}
else if($index ===3){
$col="Save3";
}
else if($index ===4){
$col="Save4";
}
$statement = $db->prepare("UPDATE Canvas_Saves SET ".$col."=:url WHERE User = :user ");
$statement->bindParam(":url", $url);
$statement->bindParam(":user", $user);
$statement->execute();