2010-12-06 13 views
1

Ich werde besessen. Ich arbeite zum ersten Mal mit vorbereiteter Erklärung, und ich bin sicher, dass ich irgendwo gelesen zu haben, dass Sie eine Anweisung wie bereiten könnten:Vorbereitete Anweisung mysqli

$stmt = $db->prepare("INSERT INTO {$table} (:var1, :var2) VALUES (:val1, :val2)"); 
$stmt->bind_param(':var1', $var1); 
$stmt->bind_param(':var2', $var2); 
$stmt->bind_param(':val1', $val1); 
$stmt->bind_param(':val2', $val2); 
$stmt->execute(); 

Oder so ähnlich. Ich erinnere mich, dass ich gelesen habe, dass Sie die Vars mit einem bestimmten Namen mit ':' als Präfix aufrufen können. Aber ich kann wirklich kein Beispiel dafür finden. Ich habe das PHP-Handbuch gelesen und konnte keine Probe von diesem Ding finden. Ist es richtig oder habe ich es geträumt?

Faq

Wenn Sie sich fragen, warum ich nicht einfach die können '?' methode:

$stmt = $db->prepare("INSERT INTO {$table} (?, ?, ?, ?, ?, ?) VALUES (?, ?, ?, ?, ?, ?)"); 

das wird schwer zu schreiben.

+0

Pigarelli - Beziehen Sie sich auf 'select @current_time: = NOW(); Wählen Sie @current_time; '? PS: Es ist nicht sicher, ob eine Bindung an die Spalte zulässig ist – ajreal

Antwort

1

Sie können nicht :var1, :var2, :varX sowohl in der Spaltennamen Liste und der VALUES Liste für eine Sache tun. Zweitens akzeptiert PDO die benannte Parameterbindung.

Siehe PHP Data Objects und Beispiele in PDO::prepare.

Verwandte Themen