2010-06-17 133 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