我得到错误:
解析错误:语法错误,意外',',期望'&'或变量(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);