【问题标题】:SQLite3::exec error (inserting data into a table)SQLite3::exec 错误(将数据插入表中)
【发布时间】:2017-09-09 17:36:57
【问题描述】:

我创建了一个应用程序,它从表单中获取信息并将详细信息放入一个名为“队列”的数据库表中。这些表由实体“Position”(主键、自动增量)、“Name”、“Service”和“QueuedAt”组成。 我在运行我的应用程序时收到此 SQLlite::exec 错误。

警告:SQLite3::exec(): near "jghjhgfjhgf": 第 31 行 E:\Programy\xampp\htdocs\QueueAppLocal\process.php 中的语法错误 “jghjhgfjhgf”附近:语法错误

这是我的 process.php 文件,它试图将表单详细信息插入到表格中

<?php
class MyDB extends SQLite3
{
    function __construct()
    {
        $this->open('queue.db');
    }
}
$db = new MyDB();
if(!$db){
    echo $db->lastErrorMsg();
} else {
    echo "Opened database successfully\n";
}

if(isset($_POST['formSubmit'])) {

    $varFirstName = $_POST['formFirstName'];
    $varLastName = $_POST['formLastName'];
    $varTitle = $_POST['formTitle'];
    $varService = $_POST['formServices'];

    $varFullName = $varTitle . " " . $varFirstName . " " . $varLastName;
}

    $sql =<<<EOF
          INSERT INTO queue (Name,Service,QueuedAt)
          VALUES ($varFullName, $varService, CURRENT_TIME);
EOF;

$ret = $db->exec($sql);
if(!$ret){
  echo $db->lastErrorMsg();
} else {
  echo "Records created successfully\n";
}
$db->close();

【问题讨论】:

  • 不要对查询使用字符串操作!它们存在安全风险! 了解如何用您的语言进行“参数化查询”。

标签: php html forms sqlite


【解决方案1】:

刚刚意识到问题所在。在 $sql 值中,我忘记将变量放在单引号中,例如 VALUES ('$varFullName', '$varService', CURRENT_TIME);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-18
    • 2016-09-20
    • 1970-01-01
    • 2014-05-17
    • 1970-01-01
    • 2021-12-20
    相关资源
    最近更新 更多