Mysql(i)-Unterstützung wurde seit PHP5.0 hinzugefügt, und die neuen Funktionen werden in Form von Objekten hinzugefügt
i bedeutet verbesserte Funktionen, hohe Effizienz und Stabilit?t
Empfohlene MySQL-Video-Tutorials: ?MySQL-Tutorial“
Parameter für die Kompilierzeit:
./configure --with-mysql=/usr/bin/mysql_config \ #使用 Mysql ClientLibrary(libmysql)構建 --with-mysqli=mysqlnd \ #使用 Mysql Native Dirver 即mysqlnd --with-pdo-mysql=mysqlnd #使用 Mysql Native Dirver 即mysqlnd
Aus urheberrechtlichen Gründen ab PHP 5.3 PHP begann, mysqlnd zu verwenden, um libmysql.dll zu ersetzen
mysqlnd ist ein von der Firma Zend entwickelter MySQL-Datenbanktreiber. Im Vergleich zum Original hat er sich in allen Aspekten verbessert
#Kompilieren mit mysqlnd
./configure --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd 加上你的參數(shù)
MySQL-Prozess- und Objektmodi unterstützen die drei von
MySQL bereitgestellten Klassen:
1、mysqli 和連接相關的 2、MySQLi_Result 處理結果集 3、mysqli_stmt 預處理類
#Zeichensatz festlegen
set_charset
#Zeichensatz abrufen
Zeichensatzname
Datenbankobjekt abrufen
//創(chuàng)建mysqli對象方式 1 //屏蔽連接產(chǎn)生的錯誤$mysqli = new mysqli('127.0.0.1', 'root', '', 'test');//只能用函數(shù)來判斷是否連接成功if(mysqli_connect_errno()) { echo mysqli_connect_error(); }//創(chuàng)建mysqli對象方式 2 可以設置一些參數(shù)$mysqli = mysqli_init();$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 2);//設置超時時間$mysqli->real_connect('127.0.0.1', 'root', '', 'test');
Abfrage: Gibt bei Fehler ?false“ zurück, ?select“ gibt das Ergebnismengenobjekt erfolgreich zurück , andere geben true zurück, nicht falsch. Dies bedeutet, dass die SQL-Ausführung erfolgreich war
Beispiel ohne Ergebnismenge
$mysqli = mysqli_init();$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 2);//設置超時時間$mysqli->real_connect('127.0.0.1', 'root', '', 'test');$sql = "insert into limove(`name`, `order`) values('aa', 11)";$rst = $mysqli->query($sql);$sql = "delete from limove where id = 221";$rst = $mysqli->query($sql);if($rst === false) { ee($mysqli->errno); ee($mysqli->error); }#影響條數(shù) ee($mysqli->affected_rows);#插入的id ee($mysqli->insert_id); ee($mysqli);
Mit Ergebnismenge
$mysqli = mysqli_init();$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 2);//設置超時時間$mysqli->real_connect('127.0.0.1', 'root', '', 'test');$sql = "select * from limove as limove_as";$result = $mysqli->query($sql);if($result === false) { ee($mysqli->errno); ee($mysqli->error); }#行數(shù) ee($result->num_rows);#列數(shù) ee($result->field_count);#字段個數(shù) ee($result->field_count);#獲取所有字段的信息$field_arr = $result->fetch_fields();#移動字段的指針 // $result->field_seek(1);#依次獲取字段的信息while($field = $result->fetch_field()) { ee($field); }#移動記錄指針$result->data_seek(1);#一次獲取所有數(shù)據(jù)$data = $result->fetch_all(MYSQLI_ASSOC);#關聯(lián)數(shù)組方式獲取結果集$data = array();$result->data_seek(0); #重置指針到起始while($row = $result->fetch_assoc()) { $data[] = $row; } ee($data);$result->free();$mysqli->close();
Mehrere ausführen Anweisungen gleichzeitig mehrfach abfragen (nicht empfohlen)
Es gibt keine Ergebnismenge. Zu diesem Zeitpunkt kann ?betroffene_zeilen“ nur die Nummer der letzten betroffenen Zeile abrufen
$mysqli = mysqli_init();$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 2);//設置超時時間$mysqli->real_connect('127.0.0.1', 'root', '', 'test');$sql_arr = array( 'insert into limove(id,`name`, `order`) values(null, 1, 2)', 'insert into limove(id,`name`, `order`) values(null, 1, 222)', 'delete from limove where `order` = 2', );$sql = implode(';', $sql_arr);$result = $mysqli->multi_query($sql);if($result === false) { ee($mysqli->errno); ee($mysqli->error); }$mysqli->close();
Es gibt eine Ergebnismenge
$mysqli = mysqli_init();$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 2);//設置超時時間$mysqli->real_connect('127.0.0.1', 'root', '', 'test');$sql_arr = array( 'show tables', 'desc select * from limove', 'show create table limove', );$sql = implode(';', $sql_arr);$rst = $mysqli->multi_query($sql);if($rst === false) { ee($mysqli->errno); ee($mysqli->error); }do{ $result = $mysqli->store_result();#獲取當前光標所在的結果集 $data = $result->fetch_all(); ee($data); }while($mysqli->next_result());#光標移動到下一個結果集$mysqli->close();
Transaktionsverarbeitung:
$mysqli=new mysqli("localhost", "root", "123456", "xsphpdb"); //事務處理 $mysqli->autocommit(0); $error=true; $price=50; $sql="update zh set ye=ye-{$price} where name='zhangsan'"; $result=$mysqli->query($sql); if(!$result){ $error=false; echo "從張三轉出失敗 "; }else{ if($mysqli->affected_rows==0){ $error=false; echo "張三的錢沒有變化"; }else{ echo "從張三賬號中轉出成功! "; } } $sql="update zh set ye=ye+{$price} where name='lisi1'"; $result=$mysqli->query($sql); if(!$result){ $error=false; echo "從李四轉入失敗 "; }else{ if($mysqli->affected_rows==0){ $error=false; echo "李四的錢沒有變化"; }else{ echo "向李四賬號中轉入成功! "; } } if($error){ echo "轉賬成功!"; $mysqli->commit(); }else{ echo "轉賬失敗!"; $mysqli->rollback(); } $mysqli->autocommit(1); $mysqli->close();
mysqli_stmt:mysqli-Vorverarbeitungsklasse (empfohlen): Stellt eine vorbereitete Anweisung dar, der Server kompiliert SQL nur einmal
Die gleiche Funktion kann mit mysqli und mysqli_result
erreicht werden

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)