データベースへのデータの挿入エラー

このコードを実行しようとすると、データはデータベースに挿入されません。

<?php
class Database {
private $dsn;
function __construct($dbname, $host, $user, $password, $enckey) {
    $this->dsn = "mysql:dbname=" . $dbname . ';host=' . $host;
    $this->user = $user;
    $this->password = $password;
}
private function createDSN() {
    return $this->dsn;
}
public function createConnection() {
    try {
        $dbh = new PDO(self::createDSN(), $this->user, $this->password);
    } 
    catch (PDOException $e) {
        echo 'Connection failed: ' . $e->getMessage();
    }
    return $dbh;
}
}

$db = new Database('mytest', 'localhost', 'root', 'hashedpassword', null);
$dbh = $db->createConnection();

$sql = $dbh->prepare("INSERT INTO contacts (firstname, lastname) VALUES (?,?)");
$sql->execute(array("abc", "xyz"));


?>
0
万一、システム変数 autocommit を0に設定していますか?
追加された 著者 flesk,
どのようなエラーメッセージですか?
追加された 著者 Wesley van Opdorp,
私はエラーメッセージを受け取っていない、それはちょうどデータベースに挿入されません。
追加された 著者 Aaron,
@fleskいいえ私はトランザクション機能を使用していません。
追加された 著者 Aaron,

1 答え

エラーメッセージは表示されません。

しかし、あなたはそれを取得する必要があります。 あなたのデータベースについて他の人に尋ねることはほとんど意味がありません。
データベースそのものを尋ねる方が良いアイデアです。

あなたのcreateConnection()にこの行を追加してください(私はこの機能を何も知らないが、あなたはそれを持っている)

$dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

この方法でコードを実行する

try {
    $sql = $dbh->prepare("INSERT INTO contacts (firstname, lastname) VALUES (?,?)");
    $sql->execute(array("abc", "xyz"));
} catch (PDOException $e) {
    echo $e->getMessage();
}
2
追加された
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

このグループではPHPについて話します。 パートナー:kotaeta.com