Heim  >  Artikel  >  Datenbankabfragevorgang in PHP

Datenbankabfragevorgang in PHP

无忌哥哥
无忌哥哥Original
2018-06-28 11:35:0615130Durchsuche

Datenbankabfragevorgang in PHP

Verwandte MySQL-Video-Tutorial-Empfehlung: „MySQL-Tutorial

* 1. Abfragevorgang

* 2. Drei beteiligte Funktionen:

* 2-1. mysqli_query($db, $sql): SQL-Anweisung ausführen und die Ergebnismenge zurückgeben

* 2- 2. mysqli_errno($db): Gibt den Fehlercode der letzten Funktionsausführung zurück

* 2-3. Mysqli_error($db): Gibt die Fehlermeldung der letzten Funktionsausführung zurück

* 2-4. mysqli_num_rows($res): Gibt die Anzahl der Datensätze im Ergebnissatz zurück

* 2-5. mysqli_fetch_row($res): Gibt einen Datensatz in einem Indexarray zurück

* 2-5. mysqli_fetch_assoc($res): Gibt einen Datensatz als assoziatives Array zurück

* 2-5. mysqli_fetch_array($res,MYSQLI_NUM): Gibt einen Datensatz als Indexarray zurück

* 2-5. mysqli_fetch_array( $res,MYSQLI_ASSOC): Gibt einen Datensatz als assoziatives Array zurück

* 2-5. Mysqli_fetch_array($res,MYSQLI_BOTH): Gibt einen Datensatz als Index und relationales Array zurück

* 2-5 . Einen Datensatz im Objektmodus zurückgeben

* mysqli_free_result($result);

* 2-4. Schließen Sie die aktuelle Datenverbindung

* 3. Abfrageschritte:

* 3-1. Stellen Sie eine Verbindung zur Datenbank her

* 3-2. Bereiten Sie die SQL-Anweisung vor

* 3-3. Abfrage ausführen

* 3-4. Erkennungsergebnis

* 3-5. 5-1. Wenn es sich um Einfügen/Aktualisieren/Löschen handelt: Gibt die Anzahl der betroffenen Datensätze zurück

* 3-6. Schließen Sie die Datenbankverbindung

//1 ist keine Funktion, es müssen keine Klammern hinzugefügt werden

define ('DB_HOST', 'localhost');
define ('DB_USER', 'root');
define ('DB_PASS', 'root');
define ('DB_NAME', 'php');
define ('DB_CHAR', 'utf8');
$db = @mysqli_connect(DB_HOST, DB_USER, DB_PASS);
if (mysqli_connect_errno($db)) {
    exit('连接失败'.mysqli_connect_error($db));
}
mysqli_select_db($db, DB_NAME);
mysqli_set_charset($db, DB_CHAR);

//2. SQL-Anweisung vorbereiten

$sql = "SELECT name,salary FROM staff";
$sql = "SELECT name AS 姓名,salary AS 工资 FROM staff WHERE age>90";

//3 erfolgreich, falsch

$result = mysqli_query($db, $sql);
var_dump($result);die();

//4. Erkennungsergebnis

//Wenn die Ergebnismenge vorhanden ist

if (false != $result) { //这是写只是语义性更强
    //如果结果集中存在记录,至少有一条
//    if (mysqli_num_rows($result) > 0) {
    //mysqli_affected_rows($db)也可以完成同样的检测工作,注意参数是连接对象$db,不是结果集对象
    if (mysqli_affected_rows($db) > 0) {
//        echo &#39;共计:&#39;.mysqli_num_rows($result).&#39;条记录<br>&#39;;
        echo &#39;共计:&#39;.mysqli_affected_rows($db).&#39;条记录~~<br>&#39;;

//5. Verarbeiten Sie die Ergebnismenge

//5-1: Holen Sie sich den Indexteil

while($row = mysqli_fetch_array($result, MYSQLI_NUM)){

//Holen Sie sich den Indexteil Shortcut-Methode

while($row = mysqli_fetch_row($result)){

//5-2: Holen Sie sich den zugehörigen Teil

while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){

/ /Shortcut-Methode, um den zugehörigen Teil zu erhalten

while($row = mysqli_fetch_assoc($result)){

//5-3: Index + Assoziation

while($row = mysqli_fetch_array($result, MYSQLI_BOTH)){

//5-4: Der schnelle Weg, den Index + Assoziation zu erhalten, besteht darin, nicht zu übergeben im zweiten Parameter, der der Standardwert ist

while($row = mysqli_fetch_array($result)){

//5-4: In Form von Objekten

        while($row = mysqli_fetch_object($result)){
//            var_export($row);//以字符串方式表示查询结查
            //如果是对象,可以用指向符来访问
            echo $row->name.&#39;--&#39;.$row->salary;
            echo &#39;<hr>&#39;;
            //以变量方式表示,表示的内容更加完整丰富
//            var_dump($row);
        }
    } else {
        echo &#39;没有符合条件的记录&#39;;
    }
    //查询失败的处理方式
} else {
    //必须要用exit()或die()终止脚本执行,否则后面的语句还会执行并会报错
    exit(&#39;查询失败&#39;.mysqli_errno($db).&#39;:&#39;.mysqli_error($db));
}

//5. Geben Sie die Ergebnismenge frei (nur für select)

mysqli_free_result($result);

//6. Schließen Sie die Datenbankverbindung

mysqli_close($db);

Stellungnahme:
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