

PHPからMySQLへのinsert文でエラーは出ないのにinsertされません なぜでしょう？

追記

[code]

    <?php
    header("Content-type: text/html; charset=utf-8");
     
    if(empty($_POST)) {
        header("Location: pdo_form.html");
        exit();
    }else{
        //名前入力判定
        if (!isset($_POST['yourname'])  || $_POST['yourname'] === "" ){
            $errors['name'] = "名前が入力されていません。";
        }
    }
     
    if(count($errors) === 0){
        
        $dsn = 'mysql:host=localhost;dbname=test2;charset=utf8';
        $user = 'root2';
        $password = 'pass2';
     
        try{
            $dbh = new PDO($dsn, $user, $password);
            $statement = $dbh->prepare("INSERT INTO name (name) VALUES (:name)");
        
            if($statement){
                $yourname = $_POST['yourname'];
                //プレースホルダへ実際の値を設定する
                $statement->bindValue(':name', $yourname, PDO::PARAM_STR);
            
                if(!$statement->execute()){
                    $errors['error'] = "登録失敗しました。";
                }
                
                //データベース接続切断
                $dbh = null;    
            }
        
        }catch (PDOException $e){
            print('Error:'.$e->getMessage());
            $errors['error'] = "データベース接続失敗しました。";
        }
    }
     
    ?>
    
[/code]

[code]

    <!DOCTYPE html>
    <html>
    <head>
    <title>登録画面</title>
    <meta charset="utf-8">
    </head>
    <body>
     
    <?php if (count($errors) === 0): ?>
    <p><?=htmlspecialchars($yourname, ENT_QUOTES, 'UTF-8')."さんで登録いたしました。"?></p>
    <?php elseif(count($errors) > 0): ?>
    <?php
    foreach($errors as $value){
        echo "<p>".$value."</p>";
    }
    ?>
    <?php endif; ?>
     
    </body>
    </html>
    
[/code]

追記

[code]

    $dbh = new PDO($dsn, $user, $password, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING));
    
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
[/code]

を追加しましたがエラーは出ずinsertもされません


CC BY-SA 4.0
2020-11-16T17:11:11.420
71990
2020-12-09T17:02:17.657
2020-12-09T17:02:17.657
29826
39481
question
php mysql
PHPからMySQLへのinsert文でエラーは出ないのにinsertされない