Heim > Backend-Entwicklung > PHP-Tutorial > Bitte helfen Sie mir herauszufinden, ob mit diesem Datenbankverbindungscode etwas nicht stimmt.

Bitte helfen Sie mir herauszufinden, ob mit diesem Datenbankverbindungscode etwas nicht stimmt.

WBOY
Freigeben: 2016-08-04 09:19:57
Original
1246 Leute haben es durchsucht

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>
Nach dem Login kopieren
Nach dem Login kopieren

Antwortinhalt:

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>
Nach dem Login kopieren
Nach dem Login kopieren

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:

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage