PHP和MySQL(解析错误)


PHP & MySQL (Parse Error )

我得到错误:

解析错误:语法错误,意外',',期望'&'或变量(T_VARIABLE)在/root/folder/mysqldao .php第67行

然而,一切似乎都很好。这段代码是:

public function registerUser($Facebookid, $firstname, $lastname, $FBpictureURL, $Gender, $UserEmail)
{
    $sql = "insert into Users set FacebookId=?, firstname=?, lastname=?, FBpictureURL=?, Gender=?, UserEmail=?";
    $statement = $this->conn->prepare($sql);  // Line 66
                                              // Line 67 is here
    if (!$statement)                          // Line 68
    throw new Exception($statement->error);
    $statement->bind_param("isssss", $Facebookid, $firstname, $lastname, $FBpictureURL, $Gender, $UserEmail);
    $returnValue = $statement->execute();
    return $returnValue;
}

编辑:我收到了很多关于重复帖子的批评,但是,到目前为止,没有一个答案解决了我的解决方案。在我发布我的问题之前,我当然检查了StackOverflow。无论如何,那些仍然愿意帮助,我粘贴我的代码在这里:http://justpaste.it/phpsql

备注:

  • 确保给定的代码在MySQLDao.php文件中。因为很难相信它会为那行(67)返回这样的错误,这只是空白。
  • 如果您的扩展支持MySQL,您的insert查询设置看起来不错

标准格式是这样的:

$sql = "INSERT INTO Users (FacebookId, firstname, lastname, FBpictureURL, Gender, UserEmail) 
        VALUES (?,?,?,?,?,?)";
    你是否正确调用了函数?确保传递给registerUser()函数的变量正确地从POST表单传递过来。

你可以像这样调用你的函数(这只是一个调用函数的例子):

registerUser($_POST["Facebookid"],$_POST["firstname"],$_POST["lastname"],$_POST["FBPictureURL"],$_POST["Gender"],$_POST["UserEmail"]);
  • 如果给定链接中的代码是您的更新副本,则您在查询中忘记了"SET"。

应该是这样的:

"INSERT INTO Users SET FacebookId=?, firstname=?, lastname=?, FBpictureURL=?, Gender=?, UserEmail=?";

在你的SQL语句中有6列,在你的bind_param函数中,你提供了7个参数,如果不需要"issss",那么请删除它,因为我认为它是id,如果你把它作为主键和自动增量,那么你不需要提供这个参数期望代码:

$statement->bind_param($Facebookid, $firstname, $lastname, $FBpictureURL, $Gender, $UserEmail);