我有这段代码将3个输入字段的ID号和2个日期(2个选择器,一个文本字段)的数据发送到我的数据库。所有3列均为VARCHAR。我正在使用带有POST方法的表单。
我收到此错误:
您的SQL语法有误;检查与您的MariaDB服务器版本相对应的手册以获取正确的语法以在第336行的''附近使用
我的任何文件中都没有336行。
这就是我文件中包含的PHP和SQL代码。我已经花了很长时间了,但是似乎找不到此语法错误所在。有任何想法吗?
<?php
//Fetches the id of the konsert selected.
$id = $_GET['id'];
//Create DB object
$db = new Database();
//Create query to fetch personel
$query = "SELECT * FROM funktionar";
//Run above query
$personel = $db->select($query);
//Fetch all from konsert matching the id
$query = "SELECT * FROM konsert WHERE konsertID=".$id;
//Run above query
$konsert = $db->select($query);
if(isset($_POST['submit'])) {
//Assign variables
$namn = mysqli_real_escape_string($db->link, $_POST['personalID']);
$tidStart = mysqli_real_escape_string($db->link, $_POST['tidStart']);
$tidSlut = mysqli_real_escape_string($db->link, $_POST['tidSlut']);
//Simple validation
if($namn == '' || $tidStart == '' || $tidSlut == ''){
//Set error if any field is left empty
$error = 'Vänligen fyll i alla fält.';
} else {
$query = "INSERT INTO sakerhet
(personalID, tidStart, tidSlut)
VALUES ('$namn', '$tidStart', '$tidSlut')";
$insert_row = $db->insert($query);
}
}
?>
编辑:添加了插入功能:
public function insert($query) {
$insert_row = $this->link->query($query) or die($this->link->error.__LINE__);
//Validate insert
if($insert_row) {
header("Location: index.php?msg=".urlencode('Record Added'));
exit();
} else {
die('Error : ('.$this->link->errno .') '.$this->link->error);
}
}
最终和可行的解决方案。发生此SQL错误的原因是:
结束语与上面提到的查询执行自身的问题相比,这并不是语法错误。语法正确。
免责声明此代码不是100%安全的,也不是100%完成的。输入字段未经过清理,正如@EagleRainbow所指出的那样,使用“ $ id = $ _GET ['id'];”并不安全。
代码
<?php
//Fetches the id of the konsert selected.
$id = $_GET['id'];
//Create DB object
$db = new Database();
//Create query to fetch personel
$query = "SELECT * FROM funktionar";
//Run above query
$personel = $db->select($query);
//Select all from table sakerhet
$query = "SELECT * FROM sakerhet";
//Run above query
$safety = $db->select($query);
//Fetch all from konsert matching the id
$query = "SELECT * FROM konsert WHERE konsertID=".$id;
//Run above query
$konsert = $db->select($query);
<?php
if(isset($_POST['submit'])) {
//Assign variables
$selected = $_POST['safetyName'];
$tidStart = $_POST['tidStart'];
$tidSlut = $_POST['tidSlut'];
$konsert = $id;
//Simple validation
if($selected == '' || $tidStart == '' || $tidSlut == ''){
//Set error if any field is left empty
$error = "Vänligen fyll i alla fält.";
} else {
$query = "INSERT INTO sakerhet (personalID, tidStart, tidSlut, konsertID) VALUES ('$selected', '$tidStart', '$tidSlut', '$konsert')";
$insert_row = $db->insert($query);
}
}
?>
数据库文件中的代码
public function insert($query) {
$insert_row = $this->link->query($query) or die($this->link->error.__LINE__);
//Validate insert
if($insert_row) {
header("Location: index.php?msg=".urlencode('Record Added'));
exit();
} else {
die('Error : ('.$this->link->errno .') '.$this->link->error);
}
}
感谢您的帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句