PHP/PDO prepared statements

...komplette Frage anzeigen

1 Antwort

Ja. Der Unterschied besteht lediglich darin, daß in dem einen Fall mit BENANNTEN (!) Platzhaltern gearbeitet wird, in dem anderen Fall mit INDIZIERTEN (!) Platzhaltern.

Noch eine Formulierungsvariante (um die Äquivalenz besser zu erkennen) wäre:

$sql = "INSERT INTO table (name, alter) VALUES (?, ?)";
$stmt = $dbh->prepare($sql);
$stmt->bindParam(1, $reg_data['name']);
$stmt->bindParam(2, $reg_data['alter']);
$stmt->execute();

...oder...

$sql = "INSERT INTO table (name, alter) VALUES (:name, :alter)";
$stmt = $dbh->prepare($sql);
$stmt->execute(array(':name' => $reg_data['name'], ':alter' => $reg_data['alter']));

Damit hast Du alle 4 Kombinationen der beiden unabhängig variierbaren Formulierungs-Elemente ("bindParam versus execute-Parameter" einerseits und "named Placeholders versus indexed Questionmark Placeholders" andererseits).

Was möchtest Du wissen?