sql预处理语句

0kjbasz6  于 2021-06-24  发布在  Mysql
关注(0)|答案(1)|浏览(688)

我不断地遇到这个错误:
对boolean函数的成员函数bind_param()的调用*
当我们尝试对不存在的表执行操作并且prepare语句返回false时,通常会出现这种情况,但我有一个结构化表。我准备的陈述是:

$query = "INSERT INTO `profiles`(name,email,handle,DOB,profilePic,gender,r_lat,r_lon,c_lat,"
               . "c_lon,connections,recentActivities,savedItems,achievements,school,"
               . "interestsB,interestsI,interestsE,work,coverPic,bio,fb_url,insta_url,link_url,wordpress_url,"
               . "other_url,address,range,phone)VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";

附言:我愿意接受所有的建议。

$stmt=$mysqli->prepare($query);
       $stmt->bind_param("ssssssddddsssssssssssssssssii",$name,$email,$handle,$DOB,$profilePic,$gender,$r_lat,$r_lon,$c_lat,$c_lon,
               $connections,$recentActivities,$savedItems,$achievements,$school,$interestsB,
               $interestsI,$interestsE,$work,$coverPic,$bio,$fb_url,$insta_url,$link_url,$wordpress_url,
               $other_url,$address,$range,$phone);
       $res = $stmt->execute();
       return $res;

我正在发布截图:

打印错误返回:
1064您的sql语法有错误;查看与您的mysql服务器版本对应的手册,以了解在第1行使用近距离(电话)值(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)'的正确语法

0sgqnhkj

0sgqnhkj1#

range 是mysql中的保留字。你可以用前引号括起来:

`range`

相关问题