Heim >Backend-Entwicklung >PHP-Tutorial >MySQLI-Methode zum Betreiben einer MySQL-Datenbank

MySQLI-Methode zum Betreiben einer MySQL-Datenbank

不言
不言Original
2018-06-06 09:26:192873Durchsuche

Dieser Artikel stellt hauptsächlich die MySQLI-Methode zum Betreiben einer MySQL-Datenbank vor. Sie hat einen bestimmten Referenzwert. Jetzt können Freunde in Not darauf verweisen.

Drei Möglichkeiten zur Bedienung MySQL mit PHP Eine Methode

MySQL

nicht permanente Verbindung, jedes Mal, wenn die Datenbank verwendet wird, wird ein neuer Prozess geöffnet,

Nachteile :
Die Leistung ist gering und wird nach PHP5.0 aufgegeben.

MySQLi

Permanente Verbindung, reduziert den Serverdruck, unterstützt nur MySQL

Nachteile:
Beansprucht Speicher

PDO (Empfohlen)

kann die allgemeinen Funktionen von MySQLi realisieren und unterstützt die meisten Datenbanken.

MySQLI-Methode (objektorientiert)

Grundlegende Verwendung:

1) Mit der Datenbank verbinden

$mysqli = new mysqli(‘host’,‘username’,‘password’,‘database’)

2) Ausführen SQL-Anweisungen

$mysqli -> query($sql);

3) Erhalten Sie das Ergebnis

$result -> fetch_array([MYSQLI_ASSOC])     一个
$result -> fetch_assoc()                   一个

$result -> fetch_all([MYSQLI_ASSOC])       全部

Der Standardwert von Methode 1 ist 索引数组 und wird nach dem Hinzufügen von Parametern zu 关联数组.

Methode 2 entspricht Methode 1 plus Parameter.

4) Schließen Sie die Verbindung

$mysqli -> close();

Instanz:

<?php

// MySQLi增删改例子

// MySQLi方式连接数据库
$mysqli = new mysqli(&#39;localhost&#39;,&#39;root&#39;,&#39;123456789&#39;,&#39;test&#39;);

// 执行SQL语句
// 使用utf-8编码
$mysqli -> query(&#39;set names utf8&#39;);

// 插入
//$result = $mysqli -> query("INSERT users(name,money) VALUES(&#39;甜筒&#39;,4) ");
//$result = $mysqli -> query("INSERT users(name,money) VALUES(&#39;麦辣鸡腿堡&#39;,16) ");

// 修改
//$result = $mysqli -> query("UPDATE users SET `name`= &#39;麦旋风&#39; WHERE `id` = 2");

// 删除
//$result = $mysqli -> query("DELETE FROM users WHERE `id` = 5");

//var_dump($result);

/*********************查询*****************/ 
$result = $mysqli -> query("SELECT * FROM users");
// 获取结果集
$data = $result -> fetch_all(MYSQLI_ASSOC);

var_dump($data);

Transaktionssteuerung

Eine Transaktion ist eine Datenbankoperation, die mehrere logische Aufgaben in einer Ausführungseinheit vereint (Totaler Erfolg oder Misserfolg).

1) Öffnen Sie die Transaktion

$mysqli -> autocommit(false)

Diese Methode führt dazu, dass die Transaktion sofort übermittelt wird, daher muss der Parameter false ausgefüllt werden.

2) Transaktions-Rollback

$mysqli -> rollback()

Wenn ein Fehler in den Daten vorliegt, können Sie diese Methode verwenden, um die Daten wiederherzustellen.

3) Transaktionsübermittlung

$mysqli -> commit()

4) Verbindung schließen

$mysqli -> close()

Hinweis:

Wenn wir query() verwenden, um SQL-Anweisungen auszuführen, tut er dies nicht Es kümmert sich um die Änderungen in der Datenbank und darum, ob die SQL-Anweisung falsch ist.

Daher können wir uns nicht auf den Rückgabewert von query() verlassen, um festzustellen, ob die Operation erfolgreich ist oder nicht.

Um die Anzahl der betroffenen Zeilen zu verwenden, um Folgendes zu bestimmen:

$mysqli -> affected_rows

Instanz

 query('set names utf8');


// 开启事务
$mysqli -> autocommit(false);

//SQL
$sql1 = "UPDATE users SET `money`=`money`+1  WHERE `id` = 1";
$sql2 = "UPDATE users SET `money`=`money`-1  WHERE `id` = 11";

// 执行SQL语句
$result = $mysqli -> query($sql1);
$r1 = $mysqli -> affected_rows;

$result = $mysqli -> query($sql2);
$r2 = $mysqli -> affected_rows;

if($r1 > 0 && $r2 > 0){
    // 提交事务
    $mysqli -> commit();
    echo '操作成功';
}else{
    // 事务回滚
    $mysqli -> rollback();
    echo '操作失败';
}

Vorverarbeitung

Vorverarbeitung, senden Sie zunächst die SQL-Anweisung an den Server und führen Sie sie aus Vorkompiliert.

Wenn der Client eine SQL-Anweisung ausführt, muss er nur die Eingabeparameter hochladen.

Wenn mehrere Lese- oder Speichervorgänge beteiligt sind, ist die Effizienz höher als bei normalen SQL-Ausführungsvorgängen.

1) $sql = „???“

Der Parameter im VALUE der SQL-Anweisung wird durch ein Fragezeichen ersetzt.

2) Vorkompiliertes Objekt erstellen

 $stmt = $mysqli -> prepare($sql)

3) Parameterzuweisung

$stmt -> bind_param(&#39;参数类型&#39;, 参数1, 参数2...)

Parametertypbeschreibung:
string-s int-i double-d bool-b

Besondere Erinnerung:
Schreiben Sie die Parametertypen der Reihe nach ohne Leerzeichen oder Kommas. Parameter 1 ist beispielsweise Zeichenfolge und Parameter 2 ist bool, geschrieben wie folgt:
$stmt -> bind_param('si', 参数1, 参数2)

4) Variable Bindungsergebnismenge (dieser Schritt ist nur für Abfragen erforderlich, überspringen Sie diesen Schritt für andere Vorgänge)

$stmt -> bind_result()

Besondere Aufmerksamkeit:
Die Variable von bind_result entspricht dem Feldnamen in der Select-Anweisung, achten Sie also unbedingt auf Menge und Reihenfolge! ! !

5) Führen Sie den Code aus

$stmt -> execute()

6) Speichern Sie den Abfragedatensatz im PHP-Programm (Abfragevorgang ist optional)

$stmt->store_result()

Weitere Informationen finden Sie unter dem Link unten

Detaillierte Analyse

7) Erhalten Sie die Ergebnisse jedes Datensatzes

$stmt ->fetch()

Instanz

 query('set names utf8');

// SQL语句
$sql = "SELECT * FROM users WHERE id>? ";

// 创建预编译对象
$stmt = $mysqli -> prepare($sql);

// 参数绑定
$id = 1;
$stmt -> bind_param('i',$id);

// 绑定结果集   参数要和表的参数一致
$stmt -> bind_result($id,$name,$money,$age);

// 执行SQL语句
$stmt -> execute();

// 执行SQL语句
$stmt->store_result();

// 接收结果集
while($stmt -> fetch()){
    $data[] = [
        'id' => $id,
        'name' => $name,
        'money' => $money
    ];
}

var_dump($data);

Verwandte Empfehlungen:

PHP-Betriebsdatenbank : Operationsoperation auswählen

Das obige ist der detaillierte Inhalt vonMySQLI-Methode zum Betreiben einer MySQL-Datenbank. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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