簡體   English   中英

PDO准備好的語句錯誤1064

[英]PDO prepared statement Error 1064

我在嘗試將數據插入表中時遇到此錯誤。

Array([0] => 42000 [1] => 1064 [2] =>您的SQL語法有錯誤;請查看與您的MySQL服務器版本相對應的手冊,以獲取在'username , password , firstname , lastname , email , emailcode``)VALUES(``第1行)

我的代碼如下:$ reg_data是一個數組,其中包含$ _POST中的數據。

        $fields = '`' . implode('`, `',array_keys($reg_data)) . '`';
        $data = '\'' . implode('\', \'', $reg_data) . '\'';


        $prep = $this->db->prepare('INSERT INTO `users` (`'.$fields.'`) VALUES (?)');

        $prep->bindParam(1, $data);

        $prep->execute();

        print_r($prep->errorInfo());

如您所見,該錯誤清楚地表明您使用了雙向補全電子郵件代碼``

在爆破中添加反引號后,您將再次在插入查詢( '.$fields.' )中添加

更改

 $fields = '`' . implode('`, `',array_keys($reg_data)) . '`';

 $fields =  implode('`, `',array_keys($reg_data)) ;

或者只是使用它而無需使用bak,因為您已經使用implode添加了

$prep = $this->db->prepare('INSERT INTO `users` ('.$fields.') VALUES (?)');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM