我的PDO INSERT有问题。
error_reporting(E_ALL);
error_reporting(-1);
include "../includes/php/db.php";
$name = htmlentities($_POST['name']);
$stadt = htmlentities($_POST['stadt']);
$postleitzahl = htmlentities($_POST['postleitzahl']);
$strasse = htmlentities($_POST['straße']);
$hausnummer = htmlentities($_POST['hausnummer']);
$created_at = date("Y-m-d H:i:s");
$updated_at = date("Y-m-d H:i:s");
$stmt = $dbh->prepare('INSERT INTO kundens (name, stadt, postleitzahl, straße, hausnummer, created_at, updated_at)VALUES( :name, :stadt, :postleitzahl, :strasse, :hausnummer, :created_at, :updated_at)');
var_dump($name, $stadt, $postleitzahl, $strasse, $hausnummer, $created_at, $updated_at);
try {
$stmt->execute(array($name, $stadt, $postleitzahl, $strasse, $hausnummer, $created_at, $updated_at));
}
catch (PDOException $e) {
echo 'Insert Error: ' . $e->getMessage() . "\n";
}
我找不到我的问题。
数据库是这样的:
# Name Typ Kollation Attribute Null Standard Kommentare Extra
1 idPrimärschlüssel int(10) UNSIGNED Nein kein(e) AUTO_INCREMENT
2 name varchar(255) utf8mb4_unicode_ci Nein kein(e)
3 stadt varchar(255) utf8mb4_unicode_ci Nein kein(e)
4 postleitzahl int(11) Nein kein(e)
5 straße varchar(255) utf8mb4_unicode_ci Nein kein(e)
6 hausnummer int(11) Nein kein(e)
7 created_at timestamp Ja NULL
8 updated_at timestamp Ja NULL
答案 0 :(得分:1)
既然您使用的是命名参数而不是?您必须相应地为数组键命名参数。
$stmt = $dbh->prepare('INSERT INTO kundens (name, stadt, postleitzahl, straße, hausnummer, created_at, updated_at)VALUES( :name, :stadt, :postleitzahl, :strasse, :hausnummer, :created_at, :updated_at)');
try {
$stmt->execute(
array(
'name' => $name,
'stadt' => $stadt,
'postleitzahl' => $postleitzahl,
'strasse' => $strasse,
'hausnummer' => $hausnummer,
'created_at' => $created_at,
'updated_at' => $updated_at
)
);