对在SQL查询中插入变量的PHP语法感到困惑

时间:2018-06-06 12:05:34

标签: php sql syntax

$firstName = mysqli_real_escape_string($dbcon, $_POST['newFirstName']);
$lastName = mysqli_real_escape_string($dbcon, $_POST['newLastName']);
$emailAddress = mysqli_real_escape_string($dbcon, $_POST['newEmailAddress']);

$sqlQuery = "INSERT INTO admins (firstname, lastname, email) VALUES ('$firstName','$lastName','$emailAddress')
  ON DUPLICATE KEY UPDATE firstname ='".$firstName."' lastname='".$lastName."' email='".$emailAddress."'";

我的问题在最后一行。 AFAIK你必须使用PHP的双引号来实际将你的变量插入到字符串中,但无论我使用什么引号我都会得到错误。什么是插入变量的正确语法?

2 个答案:

答案 0 :(得分:1)

您正在更新的参数之间缺少来自SQL查询的逗号。

此外,对于您的更新语句,您需要指定表和SET:

"Update admins
Set firstname = '". $firstname . "' , lastname = '" . $lastname . "' " etc.

答案 1 :(得分:1)

您应该使用逗号分隔您要更新的列。 e.g:

ON DUPLICATE KEY UPDATE firstname ='".$firstName."', lastname='".$lastName."', 
email='".$emailAddress."'";