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
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.
Permanente Verbindung, reduziert den Serverdruck, unterstützt nur MySQL
Nachteile:
Beansprucht Speicher
kann die allgemeinen Funktionen von MySQLi realisieren und unterstützt die meisten Datenbanken.
MySQLI-Methode (objektorientiert)
$mysqli = new mysqli(‘host’,‘username’,‘password’,‘database’)
$mysqli -> query($sql);
$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.
$mysqli -> close();
<?php // MySQLi增删改例子 // MySQLi方式连接数据库 $mysqli = new mysqli('localhost','root','123456789','test'); // 执行SQL语句 // 使用utf-8编码 $mysqli -> query('set names utf8'); // 插入 //$result = $mysqli -> query("INSERT users(name,money) VALUES('甜筒',4) "); //$result = $mysqli -> query("INSERT users(name,money) VALUES('麦辣鸡腿堡',16) "); // 修改 //$result = $mysqli -> query("UPDATE users SET `name`= '麦旋风' 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);
Eine Transaktion ist eine Datenbankoperation, die mehrere logische Aufgaben in einer Ausführungseinheit vereint (Totaler Erfolg oder Misserfolg).
$mysqli -> autocommit(false)
Diese Methode führt dazu, dass die Transaktion sofort übermittelt wird, daher muss der Parameter false ausgefüllt werden.
$mysqli -> rollback()
Wenn ein Fehler in den Daten vorliegt, können Sie diese Methode verwenden, um die Daten wiederherzustellen.
$mysqli -> commit()
$mysqli -> close()
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
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, 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.
Der Parameter im VALUE der SQL-Anweisung wird durch ein Fragezeichen ersetzt.
$stmt = $mysqli -> prepare($sql)
$stmt -> bind_param('参数类型', 参数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)
$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! ! !
$stmt -> execute()
$stmt->store_result()
Weitere Informationen finden Sie unter dem Link unten
Detaillierte Analyse
$stmt ->fetch()
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!