2017-04-19 7 views
0

は、私は私のPDOのINSERTに問題があります。無効なパラメータ番号:パラメータ定義されていなかった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"; 
} 

私の問題は見つかりません。

DBは、このようなものです:あなたが名前付きパラメータではなく、を使用しているので

# 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

より良い使用 ''の代わりに、名前付きパラメータ ':?あなたは' bindParam() 'と名前をuseingない場合abc'。 http://php.net/manual/en/pdostatement.bindparam.php – JustOnUnderMillions

+0

私は...この1つは –

答えて

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 
     ) 
    ); 
+0

AAAAHは感謝をOMFGいずれかの方法を振ることができると思いますので、愚かな><その作業 – n1ghty

+0

[OK]をそのません:それは1を挿入し、Oあなたがエラーを取得されていませんし、それが挿入されていない場合は何も – n1ghty

+0

を挿入して、任意の単一のエラーを与えていない、それ以来けどいけない、2つの可能性のある問題があります。 1)問題は、エラーがスローされていないので、PDOが例外モードではない)どこか別の場所2であります – Augwa

関連する問題