php - PDO INSERT 查询 500 服务器错误

标签 php mysql pdo

<分区>

我刚开始使用 PDO,在提交表单时遇到了 HTTP 500 服务器错误。

带有处理代码的 php 页面在正确的文件夹中,所以我不知道为什么会抛出 500 错误。

两者都没有 url 重写。

这是我的代码:

        try {
        $dbh = new PDO("mysql:host=$hostname;dbname=crm",$username,$password);

        $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // <== add this line

        $stmt = $db->prepare("INSERT INTO testdrives (forename, surname,phone,email,add1,add2,add3,city,county,postcode,car,date) VALUES (:forename, :surname,:phone,:email,:add1,:add2,:add3,:city,:county,:postcode,:car,:date)");
                $stmt->bindParam(':forename', $_POST['forename']);
                $stmt->bindParam(':surname', $_POST['surname']);
                $stmt->bindParam(':phone', $_POST['phone']);
                $stmt->bindParam(':email', $_POST['email']);
                $stmt->bindParam(':add1', $_POST['add1']);
                $stmt->bindParam(':add2', $_POST['add2']);
                $stmt->bindParam(':add3', $_POST['add3']);
                $stmt->bindParam(':city', $_POST['city']);
                $stmt->bindParam(':county', $_POST['county']);
                $stmt->bindParam(':postcode', $_POST['postcode']);
                $stmt->bindParam(':car', $_POST['car']);
                $stmt->bindParam(':date', $_POST['date']);
                $stmt->execute();
        if ($dbh->query($sql)) {
        echo "<script type= 'text/javascript'>alert('New Record Inserted Successfully');</script>";
        }
        else{
        echo "<script type= 'text/javascript'>alert('Data not successfully Inserted.');</script>";
        }

        $dbh = null;
        }
        catch(PDOException $e)
        {
        echo $e->getMessage();
        }

最佳答案

编辑:

我在准备中错过了用于连接的不正确变量 $dbh$db我的错。


原始答案。

这一行:

if ($dbh->query($sql)) {...}

失败的原因有两个:

  • 调用 query()关于已经准备/执行的内容。
  • 使用一个不存在的变量,$sql

去掉带有相关大括号的语句,将其替换为简单的并将 $stmt->execute(); 替换为:

if($stmt->execute()){

        // success

    } else{

        // error

    }

并使用 PDO 的错误处理(正如您现在所做的那样)和 PHP 的错误报告:

同时检查您的日志。

关于php - PDO INSERT 查询 500 服务器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43592741/

相关文章:

php - SilverStripe CropperField 选项

php - PDO 查询中的两个参数彼此相邻?

mysql - Phalcon 原始查询

php - 使用 PDO 获取 MySQL 服务器版本

php - PDO 查询绑定(bind)字符串而不是整数返回结果

php - PDO 插入后获取整行

php - Paypal 的 ipn_email 从哪里来?

php - 允许的内存大小 134217728 字节已用尽

mysql - Sunsopt Solr 不搜索以 0 开头的邮政编码

php - 使用 PHP 和 Curl 登录 Google,Cookie 关闭?