2016-08-24 58 views
-5

其实我已经试过在phpMyAdmin此查询,这是罚款:错误的SQL语法PHP

UPDATE guest_information 
SET GuestFirstname='$firstname' , GuestLastName='$lastname', GuestMiddleName='$middlename', 
Birthdate=$birthdate, Gender='$gender', PhoneNumber='$phone', MobileNumber='$mobile', Address='$address', EmailAddress='$email' 
WHERE ReservationCode=$code" 

但是当我把它作为我的PHP查询它产生这样的错误:

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in \PATH_FILE\TO\MY\PHPFILE.PHP on line 1048 Error: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'WHERE ReservationCode=3876980' at line 4

我输出所有使用过的变量,它们都有值,这里有什么问题?非常感谢你。

+2

您错过了'$ birthdate'周围的引号......并且您应该使用带有绑定参数的预准备语句来防止SQL注入。 – Mike

+0

@Mike我已经在$ birthdate附近添加了引号,但它仍然会产生相同的错误 – rinkushitaka

+2

@rinkushitaka这就是为什么您不直接将用户输入放入查询中的原因。 – Mike

回答

0

您忘记将“$ birthdate和$ code”作为字符串,此代码将为您工作。

UPDATE guest_information 
SET GuestFirstname='$firstname', GuestLastName='$lastname', GuestMiddleName='$middlename', 
Birthdate='$birthdate', Gender='$gender', PhoneNumber='$phone', MobileNumber='$mobile', Address='$address', EmailAddress='$email' 
WHERE ReservationCode='$code'