Php SQL语法错误:can';找不到
我是SQL新手,所以我可能遗漏了一些东西。显然,我在这一行有一个语法错误:Php SQL语法错误:can';找不到,php,mysql,sql,syntax,Php,Mysql,Sql,Syntax,我是SQL新手,所以我可能遗漏了一些东西。显然,我在这一行有一个语法错误: $mysql = 'INSERT INTO Orders (Name, Recipient, Destination, Room, Message, Anonymous, OffCampus, OffCampusAddress) VALUES (?, ?, ?, ?, ?, ?, ?, ?)'; 谁能帮我找出我做错了什么?提前谢谢 错误:您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解在第1行的
$mysql = 'INSERT INTO Orders (Name, Recipient, Destination, Room, Message, Anonymous, OffCampus, OffCampusAddress) VALUES (?, ?, ?, ?, ?, ?, ?, ?)';
谁能帮我找出我做错了什么?提前谢谢
错误:您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解在第1行的“?、?、?、?、?、?、?、?、?)”附近使用的正确语法
以下是我的参数绑定:
mysqli_stmt_bind_param($stmt, 'ssssssss', $name, $recipient, $destination, $room, $message, $anonymous, $offcampus, $offcampusaddress);
尝试为列名添加's,为值添加's。它可能会工作它应该是这样的:
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'world');
$mysql = "INSERT INTO Orders\n" +
"(Name, Recipient, Destination, Room, Message, Anonymous, OffCampus, OffCampusAddress)\n" +
"VALUES\n" +
"(?, ?, ?, ?, ?, ?, ?, ?)";
$stmt = mysqli_prepare($link, $mysql);
mysqli_stmt_bind_param($stmt, 'ssssssss', $name, $recipient, $destination, $room, $message, $anonymous, $offcampus, $offcampusaddress);
mysqli_stmt_execute($stmt);
在帖子中发布错误很抱歉,刚才添加了您的?尝试在列名上添加“`”,我建议您这样做mysqli_stmt_bind_param($stmt,@binders)并将您的所有值放入@binders,更容易阅读、理解和调试我认为@Sivaguru没有足够的声誉。我认为你的任何一个值都可能包含“引号”。您是否使用mysqli_real_escape_字符串作为值?他使用的是绑定器,因此值本身没有任何影响,即使它使用了引号。我使用str_replace替换任何值中“'”的任何实例。您使用的是绑定器,该值不会导致SQL注入或SQL错误,因此不需要替换这是一个问题吗?还是一份声明?这是一份声明,抱歉。问号表达了我对使用我刚才放的语句(修改过的)的困惑,通过将其拆分成几行,错误代码(行)将更清楚问题所在。顺便说一句,您确实为$name、$recipient等设置了值?我现在得到:mysqli错误:您的SQL语法中有错误;检查与MySQL服务器版本对应的手册,以了解第1行“0”附近要使用的正确语法