2011-12-28 119 views
0

我在這裏有一件奇怪的事情。我試圖在我的數據庫中插入一個值,但是由於某種原因它沒有工作。我有這樣的代碼:無法在db中插入值

PHP

<input type='file' name='images[]' /> 
<input type="text" name="newproject_name" id="tags"/> 
<input type='text' name='order[]' value='$b' /> 

$project   = new Project(); 
$project->photo  = $_FILES['images']['name'][$key]; 
$project->order  = $_POST['order'][$key];    
$projectnaam  = $_POST['newproject_name']; 

if($project->createProject($_DB)) { 
    echo "OK"; 
} else { 
    echo "NOT OK"; 
} 
           } 

功能

class Project { 
    public function createProject($db) { 
     $sql = "INSERT INTO tblProject (
      project, 
      photo, 
      order) // If you remove this line, the function is working 
     VALUES(
      '".$db->escape($this->project)."', 
      '".$db->escape($this->photo)."', 
      '".$db->escape($this->order)."' // If you remove this line, the function is working 
      )"; 
     return $db->insert($sql); 
    } 
} 

奇怪的是,當我刪除order -lines,該功能在工作就好了。我真的不知道我在做什麼錯...

+0

運行查詢'EXPLAIN tblProject'的結果是什麼? – 2011-12-28 19:53:54

+1

您是否嘗試過回顯'$ sql'變量並直接在DBMS中執行它? – naivists 2011-12-28 19:55:09

+1

mysql錯誤怎麼樣? – zerkms 2011-12-28 19:55:33

回答

6

ORDER是一個保留字。如果您在列名稱周圍使用反引號,您應該很好:

$sql = "INSERT INTO tblProject (
     `project`, 
     `photo`, 
     `order`)  
    VALUES(
     '".$db->escape($this->project)."', 
     '".$db->escape($this->photo)."', 
     '".$db->escape($this->order)."' 
     )"; 
+0

謝謝!愚蠢的我不檢查!再次感謝! – Michiel 2011-12-28 19:58:24

0

我建議您將訂單列名更改爲position或display_order。

+0

是的,我沒有:-)) – Michiel 2011-12-28 20:12:27