PDO insert/update problem

luchs3

Erfahrenes Mitglied
Hi,
Ich würde gerne meinen Code 2x verwenden.

Konkret habe ich ein prepared update Statement mit
PHP:
$query = $db_pdo->prepare("UPDATE tbl SET
sp1 = :sp1,
sp2 = :sp2,
...
WHERE sp0 = bla");

Jetzt kann ich das ja eigentlich auch für mein Insert Statement verwenden.
Funktioniert aber nicht.
Ich habe statt "UPDATE" und "WHERE sp0 = bla" Variablen gesetzt und diese entsprechend belegen lassen.
Update funktioniert aber insert gar nicht.
Ich bekomme auch keinen Fehler geworfen.

Geht das nicht mit PDO ?

Danke im vorraus Niko
 
Es geht natürlich weiter.

PHP:
$query = $db_pdo->prepare("UPDATE tbl SET
sp1 = :sp1,
sp2 = :sp2,
...
WHERE sp0 = bla");

$query->bindParam('sp1', $var1);
$query->bindParam('sp2', $var2);
...
$query->execute();

Das update Statement funktioniert ja und laut http://dev.mysql.com/doc/refman/5.1/de/insert.html sollte das auch funktionieren.
 
Zuletzt bearbeitet:
PHP:
$stmt = mysqli_prepare($link, "UPDATE tbl SET
sp1 = ?,
sp2 = ?,
WHERE sp0 = ?");
mysqli_stmt_bind_param($stmt, 'sss', $var1, $var2, $var3);

Programmierst du im OOP- oder Prozedur-Stil?
 
in diesem Fall ist es gemischt.
Aber das ändert nichts daran, dass das funktonieren sollte.

PHP:
$query = $db_pdo->prepare("INSERT INTO tbl SET 
sp1 = :sp1, 
sp2 = :sp2,
"); 

$query->bindParam('sp1', $var1); 
$query->bindParam('sp2', $var2);

$query->execute();
$query = NULL;
 
Kurze Notiz an KD3: PDO ist nicht MySQLi!

Probier es mal so:
PHP:
try
{
  $query = $db_pdo->prepare("INSERT INTO tbl SET 
    sp1 = :sp1, 
    sp2 = :sp2,
  "); 

  $query->bindParam(':sp1', $var1); 
  $query->bindParam(':sp2', $var2);

  $query->execute();
  $query = NULL;
}
catch( PDOException $e )
{
  echo $e->getMessage();
  die();
}

Dann meldet er dir ggf. eine Fehlermeldung.
Ist [phpf]error_reporting[/phpf] auf E_ALL gestellt und display_errors aktiviert?
 
Zuletzt bearbeitet:
so hab ich es ja eigentlich eh drinnen.
Leider wirft er keine Fehler aus.
Die Daten werden aber übertragen, das hab ich auch schon geprüft.
 
Hallo, auch wenn die Antwort spät kommt, so sollte es gehen. (Ist dann für die Leute, die, wie ich, über die Suchfunktion darauf stoßen)

Mach mal
PHP:
  $query->bindParam(':sp1', $var1); 
  $query->bindParam(':sp2', $var2);
anstatt
PHP:
  $query->bindParam('sp1', $var1); 
  $query->bindParam('sp2', $var2);



Gruß Spessi
 
Zurück