【问题标题】:PHP & MySQL (Parse Error ) [duplicate]PHP和MySQL(解析错误)[重复]
【发布时间】:2015-08-23 22:10:19
【问题描述】:

我收到错误:

解析错误:语法错误,意外的 ',',在第 67 行的 /root/folder/MySQLDao.php 中需要 '&' 或变量 (T_VARIABLE)

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

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

【问题讨论】:

  • 先了解查询。
  • 我认为 INSERT INTO 不使用 SET 语句使用 VALUES() 代替
  • 您发布了 13 行代码和一条引用第 67 行的错误消息。我们在寻找什么?
  • @Hobo Sapiens 这是代码的 sn-p 部分.. 现在编辑 OP
  • @ChanomFirst 我也试过不使用 set ,但是发生了同样的错误。

标签: php mysql


【解决方案1】:

注意:

  • 确保您给定的代码在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"]);
  • 如果您给定的 link 中的代码是您的更新副本,则您在查询中忘记了“SET”。

应该是这样的:

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

【讨论】:

【解决方案2】:

在您的 sql 语句中有 6 列,并且在您的 bind_param 函数中,如果不需要“issss”,您将提供 7 个参数,然后请删除它,因为我认为它是 id 并且如果您已将其设置为主键并且auto increment 那么你不需要提供这个参数 预期代码:

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

【讨论】:

  • 1. $Facebookid 2. $firstname 3. $lastname 4. $FBpictureURL 5. $Gender 6. $UserEmail 总共 6. isssss 是 6. 所以这个答案是无关紧要的。
  • @LoganWayne Facebookid 是整数,其余的是变量。 (性别是字符)。我错过了什么吗?
  • @LoganWayne 我实际上正在运行register.php require MySQLDao.php。我得到的错误显示在domain.com/register.php;但错误与原始帖子中的一样。
  • @senty - 你帖子中的代码真的来自MySQLDao.php 文件吗?
  • 不,我正在尝试从 iPhone 应用程序 [Swift (iOS)] 发送数据,但现在,我刚刚打开 www.domain.com/register.php 没有发布任何内容。
猜你喜欢
  • 2016-04-02
  • 2015-11-05
  • 2012-03-19
  • 1970-01-01
  • 2015-08-20
  • 2017-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多