Erfahren Sie, wie Sie mit MySQL vorbereitete Anweisungen für Datenbankoperationen verwenden
P粉838563523
P粉838563523 2023-08-24 16:54:12
0
2
440
<p>Ich versuche vorbereitete Anweisungen zu verwenden, aber der folgende Code funktioniert nicht. Ich habe die folgende Fehlermeldung erhalten: </p> <blockquote> <p>Schwerwiegender Fehler: Aufruf der Nicht-Objekt-Memberfunktionexecute() in Zeile 12 von /var/www/prepared.php</p> </blockquote> <pre class="brush:php;toolbar:false;"><?php $mysqli = new mysqli("localhost", "root", "root", "test"); if ($mysqli->connect_errno) { echo „Verbindung zu MySQL fehlgeschlagen:“ $mysqli->connect_error; } $stmt = $mysqli->prepare("INSERT INTO Benutzer (Name, Alter) VALUES (?,?)"); //Eine Zeile einfügen $stmt->execute(array('one',1)); // Eine weitere Zeile mit anderen Werten einfügen $stmt->execute(array('two',1)); ?></pre> <p>Muss ich außerdem MySQL für vorbereitete Anweisungen verwenden? Kann mir jemand ein Beispiel für eine vollständig vorbereitete Anweisung nennen, einschließlich Verknüpfungen, Einfügungen und Auswahlen sowie Fehlerbehandlung? </p>
P粉838563523
P粉838563523

Antworte allen(2)
P粉729436537

你也可以使用我更喜欢的PDO。实际上,在你的代码示例中,你似乎混淆了PDO和Mysqli。

$db = new PDO($dsn, $user, $pass);
$stmt = $db->prepare("INSERT INTO users (name, age) VALUES (?,?)");
$stmt->execute(array($name1, $age1));
$stmt->execute(array($name2, $age2));

与mysqli不同,你不需要调用单独的绑定函数,尽管如果你喜欢/想要/需要使用它,该功能是可用的。

PDO的另一个有趣之处是命名占位符,它在复杂查询中可能会更不容易混淆:

$db = new PDO($dsn, $user, $pass);
$stmt = $db->prepare("INSERT INTO users (name, age) VALUES (:name,:age)");
$stmt->execute(array(':name' => $name1, ':age' => $age1));
$stmt->execute(array(':name' => $name2, ':age' => $age2));
P粉348088995

来自mysqli::prepare文档

bind_param文档

即:

$name = 'one';
$age  = 1;

$stmt = $mysqli->prepare("INSERT INTO users (name, age) VALUES (?,?)");

// 绑定参数。我猜测是'string'和'integer',但请阅读文档。
$stmt->bind_param('si', $name, $age);

// *现在*我们可以执行
$stmt->execute();
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!