2016-03-30 5 views
0

PHPスクリプトを使用してSqlite3データベースを更新しようとしていますが、理解できないエラーが発生しています。ここでPHPを使用して変数ベースのsqlite3アップデートを実行する

PHP Warning: SQLite3::prepare(): Unable to prepare statement: 1, no such column: :column in C:\UwAmp\www\save.php on line 16, referer: http://localhost/Canvas.html

PHP Fatal error: Uncaught Error: Call to a member function bindParam() on boolean in C:\UwAmp\www\save.php:17\nStack trace:\n#0 {main}\n thrown in C:\UwAmp\www\save.php on line 17, 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->文を準備しています。 私はこれを研究しようとしましたが、私は運がありませんでした。何か助けてくれてありがとう。

+0

を使用することができますか? –

+0

関連するフィールドは、テーブルCanvas_SavesのSave1、Save2、Save3、Save4です。各フィールドはTEXTタイプです。 – Bromic

答えて

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(); 
+0

これは私にこのエラーを残します。 'PHP警告:SQLite3 :: prepare():文の準備ができません:" = ":C:\\ UwAmp \\ www \\ save.php 26行目の構文エラー:referer:http: // localhost/Canvas.html' 26行目はprepare文を参照しています。 – Bromic

+0

私が渡していたインデックスに問題があったと思います。ありがとうございます。 – Bromic

関連する問題