【问题标题】:PHP:PDO: Why wont my data insert?PHP:PDO: 为什么我的数据不能插入?
【发布时间】:2013-03-09 06:24:45
【问题描述】:

我不知道我的代码有什么问题。它不会将数据插入数据库。在这里。

$adduser = $con->prepare("INSERT INTO 'basicuserinfo'(email, password, firstname, lastname) VALUES(:email, :password, :firstname, :lastname)");
    $adduser->bindValue(':email', $email);
    $adduser->bindValue(':password', $password);
    $adduser->bindValue(':firstname', $firstname);
    $adduser->bindValue(':lastname', $lastname);
    $adduser->execute();

【问题讨论】:

  • 按照here描述的方式连接并找出来
  • 哦,等等,这更容易。从表名中删除 's。给自己买一本关于基本 SQL 语法的书
  • @YourCommonSense 表名可能区分大小写,问题可能是 'basicuserinfo' 和 '(' 之间缺少空格。其次,我建议将 $adduser->bindValue(':email', $email); 更改为:$adduser->bindValue(':email', $email, PDO::PARAM_STR);并使用所有参数这样做

标签: php mysql database insert pdo


【解决方案1】:

INSERT INTO 'basicuserinfo'(email, password, firstname, lastname) VALUES(:email, :password, :firstname, :lastname)

这不是有效的 SQL 语句。摆脱's。

【讨论】:

    【解决方案2】:

    你确定它成功了吗?您没有像这样检查执行:

    if(!$adduser->execute()) echo "Execute failed";
    

    您可能会发现它在表名周围的 ' 上引发错误。

    【讨论】:

    • 这段代码不应该。标签wiki中描述了正确的方法。
    【解决方案3】:

    试试这个..

    $adduser = $con->prepare("INSERT INTO `basicuserinfo`(email, password, firstname, lastname) 
                             VALUES(?, ? , ? , ? )");
    $adduser->bindParam('ssss', $email,$password , $firstname,$lastname);
    $adduser->execute();
    

    通过这种方式准备语句,您可以减少执行时间..

    那么不要在表名前加上叛教

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-05
      • 1970-01-01
      • 2016-12-27
      • 2013-05-04
      • 2019-09-07
      相关资源
      最近更新 更多