2010-06-17 16 views
0

有沒有人在這裏有這個錯誤的一些經驗?sqlite錯誤沒有這樣的列

僅當我使用WHERE子句時,出現此錯誤。

我使用php PDO來獲得結果。

這是我簡單的表

$sql = "CREATE TABLE samenvatting (
    stem_id INTEGER PRIMARY KEY AUTOINCREMENT, 
    poll_id TEXT, 
    stem_waarde_id TEXT, 
    totaal INTEGER 
    )"; 
    $crud->rawQuery($sql); 

$poll_id = "somepoll"; 
$records = $crud->rawSelect('SELECT * FROM samenvatting WHERE poll_id='.$poll_id); 

PDO抽象類

public function conn() 
     { 
      isset($this->username); 
      isset($this->password); 
      if (!$this->db instanceof PDO) 
      { 
       $this->db = new PDO($this->dsn, $this->username, $this->password); 
       $this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
      } 
     } 
public function rawSelect($sql) 
     { 
      $this->conn(); 
      return $this->db->query($sql); 
     } 

謝謝,理查德

回答

3

這是治療 「somepoll」 在表中的列。你需要引用它,因爲它被聲明爲文本。類似於

$records = $crud->rawSelect(
    'SELECT * FROM samenvatting WHERE poll_id="' . $poll_id . '"' 
); 

也許?

+0

感謝,這可能工作。 我還沒有嘗試過呢。 我的解決方案是使用pdo準備和執行方法,而不是標準的pdo查詢功能。我會記住這一個。 – Richard 2010-06-18 18:34:12

+1

您最好使用單引號(')來指定SQL中的文字,因爲雙引號是爲了轉義名稱。但是,雙引號可能仍然適用於SQLite。 – sereda 2010-06-21 13:24:22