SQL语法错误''文件长度超出行附近

扎尔卡里亚

我有这段代码将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&auml;nligen fyll i alla f&auml;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错误的原因是:

  • 缺少表格栏。虽然错误太模糊,无法给出直接答案,但我将所有输入数据放入简单变量中,而不是á“ $ selected = $ _POST ['name']”并回显了变量á“ echo $ konsert;”,以此类推。数据是从其形式中正确提取的。像我一样注释掉查询。
  • mysqli_real_escape_string或“-> link->”的可能错误使用?我不需要参加这个项目,因为它不是必需的,也不会公开发行,因此删除它对我来说是可以的。

结束语与上面提到的查询执行自身的问题相比,这并不是语法错误。语法正确。

免责声明此代码不是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&auml;nligen fyll i alla f&auml;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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL语法错误:“(”附近

来自分类Dev

SQL语法错误:“(”附近

来自分类Dev

'union'或附近的SQL语法错误

来自分类Dev

“ where”附近的SQL语法错误

来自分类Dev

''附近的SQL查询语法错误

来自分类Dev

´╗┐附近的语法错误

来自分类Dev

Slick 3.1.1 sql PSQLException:错误:“” +“”或附近的语法错误

来自分类Dev

SQL 错误:“threatAgent_id”附近:语法错误

来自分类Dev

postgres sql:错误:“偏移”处或附近的语法错误

来自分类Dev

java.sql.SQLException:“.”附近:语法错误

来自分类Dev

在“ THEN”或附近的Postgresql语法错误

来自分类Dev

“ WHERE”或附近的语法错误

来自分类Dev

Postgresql:“-”或附近的语法错误

来自分类Dev

在“ IF”或附近的Postgres语法错误

来自分类Dev

INTERSECT附近的语法错误

来自分类Dev

“或”附近的plpgsql语法错误

来自分类Dev

PostgreSQL或附近的语法错误

来自分类Dev

$$ DELIMITER附近的语法错误

来自分类Dev

{ScientistSeedError:'或附近[[“']的语法错误

来自分类Dev

或附近“(”的Postgresql语法错误

来自分类Dev

''附近的MySQL语法错误

来自分类Dev

“ posedge”附近的语法错误

来自分类Dev

PostgreSQL:“ ||”或附近的语法错误

来自分类Dev

“ @gmail”语法错误附近

来自分类Dev

“ +”或附近的psql语法错误

来自分类Dev

PostgreSQL或附近的语法错误:

来自分类Dev

SQLite语法错误附近“?”

来自分类Dev

在“ THEN”或附近的Postgresql语法错误

来自分类Dev

PostgreSQL:“。”或附近的语法错误。