Hallo zusammen,
ich erlerne gerade den Umgang mit PDO und der Verwendung von Prepared Statements für PDO.
Dazu habe ich folgenden Code als Vorlage:
PHP-Code:
<?php
$dsn = "mysql:host=localhost;dbname=phpmysql";
//Verbindungsaufbau
try
{
$db = new PDO($dsn,'phpmysql_user','phpmysql_pass');
}
catch (PDOException $p)
{
echo "Es konnte keine Verbindung hergestellt werden.";
}
//Vorbereiten der Anfrage
$benannt = $db->prepare("INSERT INTO personen SET name=:name AND geschlecht=:geschlecht");
//Binden der Variablen
$eingaben = array(
array(':name'=>'Elke',':geschlecht'=>'W'),
array(':name'=>'Rosemarie',':geschlecht'=>'W'),
array(':name'=>'Otto',':geschlecht'=>'M'),
array(':name'=>'Heinrich',':geschlecht'=>'M'));
//Ausführen der Anfrage
$db->beginTransaction();
foreach($eingaben as $datensatz)
{
$benannt->execute($datensatz);
}
$db->commit();
?>
Die Herstellung der Verbindung zur Datenbank und Tabelle funktioniert einwandfrei. Allerdings werden die Datensätze aus dem Array
$eingaben nicht in die Tabelle geschrieben. Die Tabelle wird nur mit 4 leeren Zeilen gefüllt.
Kann mir jemand weiterhelfen?
Ich hab schon daran gedacht, vor PDOStatement::execute die Werte mit
bindParam an die Platzhalter zu binden. Hilft aber auch nicht weiter.
Danke für die Hilfe