Anfänger lernen PHP. Es gibt auch keine guten Beispiele im Internet. Ich habe laut PHP-Handbuch ein vollständiges Beispiel geschrieben.
Experten können mir helfen, einen Blick darauf zu werfen eventuelle Fehler...Vielen Dank
<code>//面向对象 $mysqli = new mysqli("localhost", "user", "pass", "database"); if(mysqli_connect_errno())) { //这边判断方式和下面面向过程中的直接判断变量有什么区别? printf("Connect failed: %s\n", mysqli_connect_error()); exit(); } $query = "SELECT `name`, `address`, `phone` FROM Users WHERE gender=? AND age=?"; if($stmt = $mysqli->prepare($query) { $stmt->bind_param("si", $gender, $age); //这边插入参数是不是写在这里? $stmt->execute(); $stmt->bind_result($name, $address, $phone); while($stmt->fetch()) { printf ("%s (%s,%s)<br />", $name, $address, $phone); } $stmt->close(); } $mysqli->close(); /面向过程 $mysqli = mysqli_connecti("localhost", "user", "pass", "database"); if(!$mysqli) { printf ("Connect failed: %s\n", mysqli_connect_error()); exit(); } $query = "SELECT `name`, `address`, `phone` FROM Users WHERE gender=? AND age=?"; if ($stmt = mysqli_prepare($query)){ mysqli_stmt_bind_param($stmt, "si", $gender, $age); mysqli_stmt_execute($stmt); mysqli_stmt_bind_result($stmt, $name, $address, $phone); while (mysqli_stmt_fetch($stmt)) { printf ("%s (%s,%s)<br />", $name, $address, $phone); } mysqli_stmt_close($stmt); } $mysqli_close();</code>
Anfänger lernen PHP. Es gibt auch keine guten Beispiele im Internet. Ich habe ein vollständiges Beispiel für PHP geschrieben.
Experten können mir helfen, einen Blick darauf zu werfen eventuelle Fehler...Vielen Dank
<code>//面向对象 $mysqli = new mysqli("localhost", "user", "pass", "database"); if(mysqli_connect_errno())) { //这边判断方式和下面面向过程中的直接判断变量有什么区别? printf("Connect failed: %s\n", mysqli_connect_error()); exit(); } $query = "SELECT `name`, `address`, `phone` FROM Users WHERE gender=? AND age=?"; if($stmt = $mysqli->prepare($query) { $stmt->bind_param("si", $gender, $age); //这边插入参数是不是写在这里? $stmt->execute(); $stmt->bind_result($name, $address, $phone); while($stmt->fetch()) { printf ("%s (%s,%s)<br />", $name, $address, $phone); } $stmt->close(); } $mysqli->close(); /面向过程 $mysqli = mysqli_connecti("localhost", "user", "pass", "database"); if(!$mysqli) { printf ("Connect failed: %s\n", mysqli_connect_error()); exit(); } $query = "SELECT `name`, `address`, `phone` FROM Users WHERE gender=? AND age=?"; if ($stmt = mysqli_prepare($query)){ mysqli_stmt_bind_param($stmt, "si", $gender, $age); mysqli_stmt_execute($stmt); mysqli_stmt_bind_result($stmt, $name, $address, $phone); while (mysqli_stmt_fetch($stmt)) { printf ("%s (%s,%s)<br />", $name, $address, $phone); } mysqli_stmt_close($stmt); } $mysqli_close();</code>
Code wird geschrieben und ausgeführt. Ob der Code korrekt geschrieben ist oder nicht, müssen Sie den Compiler oder Parser fragen, sie sind die wahren Lehrer.
Führen Sie es selbst aus. . .
Das sieht mit bloßem Auge wirklich hässlich aus. Mit dem letzten Satz scheint etwas nicht zu stimmen. Sie müssen den Parameter ($mysqli) übergeben.
Der bind_result-Schleifenabruf nach der Vorbereitung und Ausführung ist eine traditionelle Methode.
Ab 5.4 verwendet PHP standardmäßig mysqlnd als unterste Ebene, um mysql, mysqli, pdo_mysql zu implementieren.
Zu diesem Zeitpunkt können Sie get_result und verwenden fetch_all, um schnell die Abfrageergebnisse zu erhalten.
Nach der Vorbereitung und Ausführung $stmt->get_result()->fetch_all(MYSQLI_ASSOC)
können Sie die Ergebnismenge abrufen: