suchen
HeimBackend-EntwicklungPHP-TutorialEine kurze Diskussion über drei Möglichkeiten, PHP mit der MySQL-Datenbank zu verbinden

Dieser Artikel stellt Ihnen die drei Methoden vor, mit denen PHP eine Verbindung zur MySQL-Datenbank herstellt (mysql, mysqli, pdo), und analysiert die zugehörigen Betriebsfähigkeiten und Vorsichtsmaßnahmen von PHP basierend auf den drei Methoden zum Herstellen einer Verbindung mit der MySQL-Datenbank MySQL, MySQLi und PDO in Form von Beispielen sind wichtig. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird für alle hilfreich sein.

Eine kurze Diskussion über drei Möglichkeiten, PHP mit der MySQL-Datenbank zu verbinden

Es gibt drei API-Schnittstellen für die Verbindung zwischen PHP und MySQL, nämlich: PHPs MySQL-Erweiterung, PHPs MySQLi-Erweiterung und PHP Data Object (PDO). Lassen Sie uns die oben genannten drei Verbindungsmethoden zusammenfassen, um die Auswahl der besten Lösung in verschiedenen Szenarien vorzubereiten.

Die MySQL-Erweiterung für PHP ist eine frühe Erweiterung, die entworfen und entwickelt wurde, um PHP-Anwendungen die Interaktion mit der MySQL-Datenbank zu ermöglichen. Die MySQL-Erweiterung bietet eine prozedurorientierte Schnittstelle und ist für MySQL 4.1.3 oder früher konzipiert. Obwohl diese Erweiterung mit MySQL 4.1.3 oder neueren Datenbankservern interagieren kann, unterstützt sie daher einige Funktionen nicht, die von späteren MySQL-Servern bereitgestellt werden. Da es zu alt und unsicher ist, wurde es vollständig durch das spätere MySQL ersetzt.

Die MySQL-Erweiterung von PHP, die wir manchmal als erweiterte MySQL-Erweiterung bezeichnen, kann zur Verwendung des neuen MySQL 4.1.3 oder neuer verwendet werden Version. Erweiterte Funktionen. Seine Funktionen sind: objektorientierte Schnittstelle, Unterstützung vorbereiteter Anweisungen, Unterstützung für die Ausführung mehrerer Anweisungen, Transaktionsunterstützung, erweiterte Debugging-Funktionen, Unterstützung eingebetteter Dienste und Vorverarbeitungsmethoden, die das Problem der SQL-Injection vollständig lösen. Es hat jedoch auch einen Nachteil: Es unterstützt nur MySQL-Datenbanken. Wenn Sie keine anderen Datenbanken betreiben, ist dies zweifellos die beste Wahl.

PDO ist die Abkürzung für PHP Data Objects und eine Spezifikation der Datenbankabstraktionsschicht in PHP-Anwendungen. PDO bietet eine einheitliche API-Schnittstelle, die es Ihrer PHP-Anwendung ermöglicht, sich nicht um den spezifischen Datenbankserversystemtyp zu kümmern, der verbunden werden soll. Mit anderen Worten: Wenn Sie die API von PDO verwenden, können Sie bei Bedarf nahtlos zwischen Datenbankservern wechseln, z. B. von Oracle zu MySQL , muss nur ein kleiner Teil des PHP-Codes geändert werden. Seine Funktionen ähneln Schnittstellen wie JDBC, ODBC und DBI. Ebenso löst es das SQL-Injection-Problem und bietet eine gute Sicherheit. Es gibt jedoch auch Nachteile. Einige Abfragen zur Ausführung mehrerer Anweisungen werden nicht unterstützt (diese Situation kommt jedoch selten vor).

Der offizielle Artikel führt auch einen Listenvergleich zwischen den drei durch:

  PHP的mysqli扩展 PDO PHP的mysql扩展
引入的PHP版本 5.0 5.0 3.0之前
PHP5.x是否包含 是  
MySQL开发状态 活跃 在PHP5.3中活跃 仅维护
在MySQL新项目中的建议使用程度 建议 - 首选 建议 不建议
API的字符集支持
服务端prepare语句的支持情况
客户端prepare语句的支持情况
存储过程支持情况
多语句执行支持情况 大多数
是否支持所有MySQL4.1以上功能 大多数

Nach den offiziellen Ergebnissen zu urteilen, wird zuerst msqli empfohlen, gefolgt von PDO. Viele der von „Folk“ angegebenen Ergebnisse neigen dazu, PDO zu verwenden, da es nicht die Vorteile einer datenbankübergreifenden Datenbank bietet und die Eigenschaften einer schnellen Lese- und Schreibgeschwindigkeit aufweist.

1. PHP- und MySQL-Erweiterung (Diese Erweiterung wurde seit PHP 5.5.0 aufgegeben und wird in Zukunft entfernt. Die native Art von PHP, eine Verbindung zur Datenbank herzustellen, ist prozessorientiert.) .

<?php
$mysql_conf = array(
  &#39;host&#39;  => &#39;127.0.0.1:3306&#39;, 
  &#39;db&#39;   => &#39;test&#39;, 
  &#39;db_user&#39; => &#39;root&#39;, 
  &#39;db_pwd&#39; => &#39;root&#39;, 
  );
$mysql_conn = @mysql_connect($mysql_conf[&#39;host&#39;], $mysql_conf[&#39;db_user&#39;], $mysql_conf[&#39;db_pwd&#39;]);
if (!$mysql_conn) {
  die("could not connect to the database:\n" . mysql_error());//诊断连接错误
}
mysql_query("set names &#39;utf8&#39;");//编码转化
$select_db = mysql_select_db($mysql_conf[&#39;db&#39;]);
if (!$select_db) {
  die("could not connect to the db:\n" . mysql_error());
}
$sql = "select * from user;";
$res = mysql_query($sql);
if (!$res) {
  die("could get the res:\n" . mysql_error());
}
while ($row = mysql_fetch_assoc($res)) {
  print_r($row);
}
mysql_close($mysql_conn);
?>

2. PHP- und Mysqli-Erweiterungen, prozessorientiert und objektorientiert

<?php
$mysql_conf = array(
  &#39;host&#39;  => &#39;127.0.0.1:3306&#39;, 
  &#39;db&#39;   => &#39;test&#39;, 
  &#39;db_user&#39; => &#39;root&#39;, 
  &#39;db_pwd&#39; => &#39;joshua317&#39;, 
  );
$mysqli = @new mysqli($mysql_conf[&#39;host&#39;], $mysql_conf[&#39;db_user&#39;], $mysql_conf[&#39;db_pwd&#39;]);
if ($mysqli->connect_errno) {
  die("could not connect to the database:\n" . $mysqli->connect_error);//诊断连接错误
}
$mysqli->query("set names &#39;utf8&#39;;");//编码转化
$select_db = $mysqli->select_db($mysql_conf[&#39;db&#39;]);
if (!$select_db) {
  die("could not connect to the db:\n" . $mysqli->error);
}$sql = "select uid from user where name = &#39;joshua&#39;;";
$res = $mysqli->query($sql);
if (!$res) {
  die("sql error:\n" . $mysqli->error);
}
 while ($row = $res->fetch_assoc()) {
    var_dump($row);
  }
$res->free();
$mysqli->close();
?>

3. PHP- und PDO-Erweiterungen, prozessorientiert und objektorientiert -orientiert

<?php
$mysql_conf = array(
  &#39;host&#39;  => &#39;127.0.0.1:3306&#39;, 
  &#39;db&#39;   => &#39;test&#39;, 
  &#39;db_user&#39; => &#39;root&#39;, 
  &#39;db_pwd&#39; => &#39;joshua317&#39;, 
  );
$pdo = new PDO("mysql:host=" . $mysql_conf[&#39;host&#39;] . ";dbname=" . $mysql_conf[&#39;db&#39;], $mysql_conf[&#39;db_user&#39;], $mysql_conf[&#39;db_pwd&#39;]);//创建一个pdo对象
$pdo->exec("set names &#39;utf8&#39;");
$sql = "select * from user where name = ?";
$stmt = $pdo->prepare($sql);
$stmt->bindValue(1, &#39;joshua&#39;, PDO::PARAM_STR);
$rs = $stmt->execute();
if ($rs) {
  // PDO::FETCH_ASSOC 关联数组形式
  // PDO::FETCH_NUM 数字索引数组形式
  while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    var_dump($row);
  }
}
$pdo = null;//关闭连接
?>

Weitere verwandte Informationen finden Sie auf der PHP-Chinese-Website! !

Das obige ist der detaillierte Inhalt vonEine kurze Diskussion über drei Möglichkeiten, PHP mit der MySQL-Datenbank zu verbinden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Dieser Artikel ist reproduziert unter:脚本之家. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
PHP vs. Python: Verständnis der UnterschiedePHP vs. Python: Verständnis der UnterschiedeApr 11, 2025 am 12:15 AM

PHP und Python haben jeweils ihre eigenen Vorteile, und die Wahl sollte auf Projektanforderungen beruhen. 1.PHP eignet sich für die Webentwicklung mit einfacher Syntax und hoher Ausführungseffizienz. 2. Python eignet sich für Datenwissenschaft und maschinelles Lernen mit präziser Syntax und reichhaltigen Bibliotheken.

PHP: Stirbt es oder passt es sich einfach an?PHP: Stirbt es oder passt es sich einfach an?Apr 11, 2025 am 12:13 AM

PHP stirbt nicht, sondern sich ständig anpasst und weiterentwickelt. 1) PHP hat seit 1994 mehreren Versionen für die Version unterzogen, um sich an neue Technologietrends anzupassen. 2) Es wird derzeit in E-Commerce, Content-Management-Systemen und anderen Bereichen häufig verwendet. 3) PHP8 führt den JIT -Compiler und andere Funktionen ein, um die Leistung und Modernisierung zu verbessern. 4) Verwenden Sie Opcache und befolgen Sie die PSR-12-Standards, um die Leistung und die Codequalität zu optimieren.

Die Zukunft von PHP: Anpassungen und InnovationenDie Zukunft von PHP: Anpassungen und InnovationenApr 11, 2025 am 12:01 AM

Die Zukunft von PHP wird erreicht, indem sich an neue Technologietrends angepasst und innovative Funktionen eingeführt werden: 1) Anpassung an Cloud Computing, Containerisierung und Microservice -Architekturen, Unterstützung von Docker und Kubernetes; 2) Einführung von JIT -Compilern und Aufzählungsarten zur Verbesserung der Leistung und der Datenverarbeitungseffizienz; 3) die Leistung kontinuierlich optimieren und Best Practices fördern.

Wann würden Sie ein Merkmal gegenüber einer abstrakten Klasse oder Schnittstelle in PHP verwenden?Wann würden Sie ein Merkmal gegenüber einer abstrakten Klasse oder Schnittstelle in PHP verwenden?Apr 10, 2025 am 09:39 AM

In PHP eignet sich das Merkmal für Situationen, in denen die Wiederverwendung von Methoden erforderlich ist, aber nicht zur Erbschaft geeignet ist. 1) Das Merkmal ermöglicht Multiplexing -Methoden in Klassen, um die Komplexität mehrerer Vererbungskomplexität zu vermeiden. 2) Bei Verwendung von Merkmalen müssen Sie auf Methodenkonflikte achten, die durch die Alternative und als Schlüsselwörter gelöst werden können. 3) Überbeanspruchte des Merkmals sollte vermieden werden und seine einzelne Verantwortung sollte beibehalten werden, um die Leistung zu optimieren und die Code -Wartbarkeit zu verbessern.

Was ist ein Abhängigkeitsinjektionsbehälter (DIC) und warum eine in PHP verwenden?Was ist ein Abhängigkeitsinjektionsbehälter (DIC) und warum eine in PHP verwenden?Apr 10, 2025 am 09:38 AM

Abhängigkeitsinjektionsbehälter (DIC) ist ein Tool, das Objektabhängigkeiten für die Verwendung in PHP -Projekten verwaltet und bereitstellt. Die Hauptvorteile von DIC sind: 1. Entkopplung, Machen von Komponenten unabhängig, und der Code ist leicht zu warten und zu testen; 2. Flexibilität, leicht zu ersetzen oder zu ändern; 3.. Testbarkeit, bequem für die Injektion von Scheinobjekten für Unit -Tests.

Erklären Sie die SPLFixedArray und seine Leistungseigenschaften im Vergleich zu regulären PHP -Arrays.Erklären Sie die SPLFixedArray und seine Leistungseigenschaften im Vergleich zu regulären PHP -Arrays.Apr 10, 2025 am 09:37 AM

SplfixedArray ist ein Array mit fester Größe in PHP, das für Szenarien geeignet ist, in denen hohe Leistung und geringe Speicherverbrauch erforderlich sind. 1) Es muss die Größe beim Erstellen angeben, um den durch dynamischen Einstellungen verursachten Overhead zu vermeiden. 2) Basierend auf C -Spracharray betreibt direkt Speicher und schnelle Zugriffsgeschwindigkeit. 3) Geeignet für eine großräumige Datenverarbeitung und speicherempfindliche Umgebungen, muss jedoch mit Vorsicht verwendet werden, da seine Größe festgelegt ist.

Wie kann PHP -Datei sicher sicher hochladen?Wie kann PHP -Datei sicher sicher hochladen?Apr 10, 2025 am 09:37 AM

PHP überlädt Datei -Hochladen über die Variable $ \ _ Dateien. Zu den Methoden zur Sicherstellung gehören: 1. Upload -Fehler, 2. Dateityp und -größe überprüfen, 3.. Dateiüberschreibung verhindern, 4. Verschieben von Dateien auf einen dauerhaften Speicherort.

Was ist der Null -Koalescing -Operator (??) und der Null -Koalescing -Zuweisungsoperator (?? =)?Was ist der Null -Koalescing -Operator (??) und der Null -Koalescing -Zuweisungsoperator (?? =)?Apr 10, 2025 am 09:33 AM

In JavaScript können Sie NullCoalescingoperator (??) und NullCoalescingAssignmentoperator (?? =) verwenden. 1.??? 2.??= Weisen Sie den Wert des rechten Operanden die Variable zu, jedoch nur, wenn die Variable null oder undefiniert ist. Diese Operatoren vereinfachen die Codelogik und verbessern die Lesbarkeit und Leistung.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SAP NetWeaver Server-Adapter für Eclipse

SAP NetWeaver Server-Adapter für Eclipse

Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.