Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php PDO插入元';t添加到数据库_Php_Mysql_Pdo - Fatal编程技术网

Php PDO插入元';t添加到数据库

Php PDO插入元';t添加到数据库,php,mysql,pdo,Php,Mysql,Pdo,我最近一直在使用PDO,所以我对它还不熟悉,由于某些原因,我无法使用它将记录插入数据库。我做错了什么 if (isset($_POST['submit'])) { $sql = "INSERT INTO customer(firstname,lastname,email,address,city,state,zip,phone,company) VALUES(:firstname,:lastname,:email,:address,:city,:state,:zip,:phone,:co

我最近一直在使用PDO,所以我对它还不熟悉,由于某些原因,我无法使用它将记录插入数据库。我做错了什么

if (isset($_POST['submit'])) {
    $sql = "INSERT INTO customer(firstname,lastname,email,address,city,state,zip,phone,company)
VALUES(:firstname,:lastname,:email,:address,:city,:state,:zip,:phone,:company)";

    $stmt = $db->prepare($sql);

    if (!$_POST['fname'])
        $errors[] = 'You must input a first name';
    if (!$_POST['lname'])
        $errors[] = 'You must input a last name';
    if (!$_POST['address'])
        $errors[] = 'You must input an address';
    if (!$_POST['city'])
        $errors[] = 'You must input a city';
    if (!$_POST['state'])
        $errors[] = 'You must input a state';
    if (!$_POST['zip'])
        $errors[] = 'You must input a zip';
    if (!$_POST['email'])
        $errors[] = 'You must input a e-mail';
    if (!$_POST['phone'])
        $errors[] = 'You must input a phone';

    if (!$errors) {
        $stmt->bindParam(':firstname', $_POST['fname'], PDO::PARAM_STR);
        $stmt->bindParam(':lastname', $_POST['lname'], PDO::PARAM_STR);
        $stmt->bindParam(':email', $_POST['email'], PDO::PARAM_STR);
        $stmt->bindParam(':address', $_POST['address'], PDO::PARAM_STR);
        $stmt->bindParam(':city', $_POST['city'], PDO::PARAM_STR);
        $stmt->bindParam(':state', $_POST['state'], PDO::PARAM_STR);
        $stmt->bindParam(':zip', $_POST['zip'], PDO::PARAM_STR);
        $stmt->bindParam(':phone', $_POST['phone'], PDO::PARAM_STR);
        $stmt->bindParam(':company', $_POST['company'], PDO::PARAM_STR);

        $stmt->execute();
    }
} 
当我打印时($db->errorInfo());我在提交时将此数组返回给我

Array ( [0] => 00000 [1] => [2] => ) 1
发件人:

p仅检索直接在数据库句柄上执行的操作的错误信息。如果通过PDO::prepare()或PDO::query()创建PDOStatement对象并调用语句句柄上的错误,PDO::errorInfo()将不会反映语句句柄中的错误。必须调用以返回对特定语句执行的操作的错误信息


因此,要查找实际错误,请使用
$stmt->errorInfo()
。如果这些信息对您没有任何帮助,请将您遇到的错误添加到问题中或提出新的问题。

请仔细阅读并确保您已将
$db
PDO对象设置为引发异常。是否所有表单元素都已命名?这应该行得通。我注意到你没有
if(!$\u POST['company'])$errors[]..
显示完整代码。PHP/HTML/sql谢谢!一旦我使用了特定的错误,我就得到了我需要的信息。其中一个单词我的拼写有点错误;)发布完整的代码可以加快速度。我有种感觉就是这样@ConnerBurnett,我将在其中添加内容,以检查我在您的问题下发布的评论中的字母大小写/拼写。下一次,如果有下一次,发布完整的代码。它消除了对事物的猜测;-)@Fred ii-没错,尽管没有正确的错误消息,仍然很难猜测。这就是为什么这一次,我在打印($db->errorInfo())时使用了短语
;我在提交“
时得到了返回给我的[unhelp]数组,并用它来描述问题。知道如何获得正确的错误信息最终要比让人们在每次你陷入困境时向他们展示你所有的代码来猜测错误更有帮助,我很高兴康纳最终能够解决他自己的问题。@GolezTrol我同意。使用正确的错误报告功能,您可以精确定位错误。OP通常会遗漏(最)重要的内容,以便正确诊断问题。我经常在
a的影响下发表评论=a;-)Cheers@Fred-ii-如果我发现了,也许我也会这么做