Php sql有问题吗

Php sql有问题吗,php,sql,pdo,Php,Sql,Pdo,我已经差不多一年没有在数据库里闲逛了,作为一个自学成才的新手,我遇到了一些麻烦。 下面是代码中不起作用的部分,上面是与服务器的成功连接。 从这里开始,它无法更新,我不知道为什么。 在我的系统上,如果您觉得应该在PDO中完成,那么我确实有一个工作的PDO连接字符串。 在这一点上,我在空气中戳洞。 谢谢你的时间 $stmt = $conn->prepare("UPDATE bfl SET gamerid="?", name="?", age="?",location"?", email="?"

我已经差不多一年没有在数据库里闲逛了,作为一个自学成才的新手,我遇到了一些麻烦。 下面是代码中不起作用的部分,上面是与服务器的成功连接。 从这里开始,它无法更新,我不知道为什么。 在我的系统上,如果您觉得应该在PDO中完成,那么我确实有一个工作的PDO连接字符串。 在这一点上,我在空气中戳洞。 谢谢你的时间

$stmt = $conn->prepare("UPDATE bfl SET gamerid="?", name="?", age="?",location"?", email="?", console="?"WHERE team="?" ");



 $stmt->bindParam(1, $gamerid);
    $stmt->bindParam(2, $name);
    $stmt->bindParam(3, $age);
    $stmt->bindParam(4, $location);
    $stmt->bindParam(5, $email);
    $stmt->bindParam(6, $cosole);
    $stmt->bindParam(7, $team);

$stmt->execute(array($gamerid,$name,$age,$location,$email,$co‌​nsole,$team);
  • mysql语法是
    insert
    语法,而不是update
  • 使用
    PDO
    而不是
    mysql.*
  • 使用参数化查询,而不是连接查询
  • 占位符不会被引用
  • 在执行中绑定或绑定,不要同时执行
  • 不要在整个内部查询周围加括号
  • 把你得到的:

    $stmt = $dbh->prepare('UPDATE bfl
                           SET gamerid=?,
                           name=?,
                           age=?,
                           location?,
                           email=?,
                           console=?
                           WHERE team=?');
    $stmt->execute(array($gamerid,$name,$age,$location,$email,$co‌​nsole, $team));
    

    另外,请注意使用错误报告,这将在将来对您有所帮助。

    这是
    insert
    语法,而不是
    update
    语法
    mysql.*
    也不会与
    pdo
    混合使用。您应该使用
    pdo
    并对查询进行参数化。有关更新语法,请参阅。此外,单引号中的变量不是变量。所以这里有很多问题需要解决..所以设置gamerid=“$gamerid”,name=“$name”,等等。。我的pdo能力实际上是不存在的。你的
    mysql\u*
    似乎没有那么远,所以最好在船沉没之前把它修好。对所有值使用
    s,然后使用绑定函数或以数组形式在execute中传递值。e、 g.
    $sth->execute(数组($gamerid,$name,$age,$location,$email,$console,$team))
    和像
    $pdo->prepare('UPDATE bfl SET gamerid=?,name=?,age=?,location=?,email=?,console=?WHERE team=?)
    应该在pdo或mysqli中完成。7.0中的PHP。你也应该。我敢打赌,您的查询失败的另一个原因是您按照以下行连接数据集$stmt=$dbh->prepare(“更新bfl集(gamerid=“?”,name=“?”,age=“?”,location”“,email=“?”console=“?”)WHERE team=“?”;”$stmt->bindParam(1,$gamerid)$stmt->bindParam(2,$name)$stmt->bindParam(3,$age)$stmt->bindParam(4$location)$stmt->bindParam(5美元,电子邮件)$stmt->bindParam(6,$cosole)$stmt->bindParam(7美元团队)$sth->execute(数组($gamerid、$name、$age、$location、$email、$co)‌​nsole,$team);啊,如果我绑定了每一个,我只需要执行();