【问题标题】:sqlite ERROR no such column [duplicate]sqlite ERROR没有这样的列[重复]
【发布时间】:2011-03-05 02:06:22
【问题描述】:

这里有人对这个错误有一些经验吗?

仅当我使用 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);
        }

谢谢,理查德

【问题讨论】:

    标签: php sqlite pdo


    【解决方案1】:

    它将“somepoll”视为表中的一列。您需要引用它,因为它被声明为文本。像

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

    也许?

    【讨论】:

    • 谢谢,这可能有效。我还没试过呢。我的解决方案是使用 pdo 准备和执行方法,而不是标准的 pdo 查询功能。我会记住这个的。
    • SQL 中最好使用单引号 (') 来指定字面量,因为双引号是用来转义名称的。但是,双引号可能仍然适用于 SQLite。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-25
    • 2022-01-05
    • 2020-06-02
    • 2020-08-16
    • 2017-02-09
    • 2015-09-07
    • 1970-01-01
    相关资源
    最近更新 更多