Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php SQL语法错误:can';找不到_Php_Mysql_Sql_Syntax - Fatal编程技术网

Php SQL语法错误:can';找不到

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行的

我是SQL新手,所以我可能遗漏了一些东西。显然,我在这一行有一个语法错误:

 $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”附近要使用的正确语法