【发布时间】: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();
【问题讨论】:
-
不要对查询使用字符串操作!它们存在安全风险! 了解如何用您的语言进行“参数化查询”。