2012-11-29 61 views
1

我不斷收到錯誤Unknown Column in field List字段列表中的未知列

該數據庫具有以下字段:

ID - AUTO INCRIMENT 
username 
password 
groupID 
prefs_list_item 

這裏是我的代碼。這些變量作爲一個設置值存儲在上面,我知道這並不會給我任何問題,因爲我在同一個腳本中的其他數據庫中使用它們。

try { 
$wpdb = new PDO('mysql:host=localhost; dbname=******', '*******', 
'*******'); 
$wpdb->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

//Creates the SQL statement to write into the picture database 
$pictureUPDATE = $wpdb->prepare 
("INSERT INTO pe_users (
username, 
password, 
groupID 
) VALUES (
$username, 
$passmd5, 
$groupID 
) 
"); 
//Executes the writing into the picture database 
$pictureUPDATE->execute(); 
echo("<p>Your account to upload photos is now active!</p>");    
             } 
//catches any errors that might have come from updating the picture databse 
catch (PDOException $ex) { 
     $msg = $ex->errorInfo; 
     error_log(var_export($msg, true)); 
     die("<p>Sorry, there was a unrecoverable database error with PICTURES. 
     Debug data has been logged.</p>"); 
         } 

不知道發生了什麼事,任何人都有線索?

+0

MD5是不安全的。您應該使用bcrypt或PBKDFv2。 – SLaks

+2

你正在調用'prepare()',但你沒有綁定任何變量。相反,您只需插入PHP變量'$ username,$ passmd5,$ groupID'。您沒有獲得準備好的聲明的安全性。 (更不用說你的變量看起來不會被引用,除非它們在字符串變量中引用) –

+0

但是你確定它是'INSERT'語句導致錯誤嗎? –

回答

0

嘗試這樣做:

$data = array('username' => $username, 'password' => $passmd5, 'groupID' => $groupID); 

$pictureUPDATE = $wpdb->("INSERT INTO pe_users 
      (username, password, groupID) value (:username, :password, :groupID)"); 

$pictureUPDATE->execute($data); 
+0

都能跟得上同樣的問題: '[28-NOV-2012 21時53分46秒]數組( 0 > '42S22', 1 => 1054, 2 => '未知列\' **** \ '在\ '字段列表\'', )' – user1850418

0

其實groupID wasnt的問題,在我的可變因素,我需要添加'{ }'所以它看起來像這樣.... $pictureUPDATE = $wpdb->prepare ("INSERT INTO pe_users ( username, password, groupID ) VALUES ( '{$username}', '{$passmd5}', '{$groupID}' ) ");

相關問題