Es gibt drei API-Schnittstellen zum Verbinden von PHP mit MySQL, nämlich: PHPs MySQL-Erweiterung, PHPs MySQLi-Erweiterung und PHP Data Object (PDO). Im Folgenden finden Sie eine Zusammenfassung der oben genannten drei Verbindungsmethoden zur Vorbereitung auf verschiedene Szenarien. Wählen Sie unten die beste Lösung.
(Empfehlung für entsprechende Tutorials: MySQL-Video-Tutorial)
Die MySQL-Erweiterung von PHP ist eine frühe Erweiterung, die entworfen und entwickelt wurde, um PHP-Anwendungen die Interaktion mit MySQL-Datenbanken 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
PHPs MySQL-Erweiterungserweiterung, die wir manchmal als MySQL-Erweiterungserweiterung bezeichnen, verwendet, um die neuen erweiterten Funktionen in MySQL 4.1.3 oder neueren Versionen zu nutzen . 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, 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:
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 ist seit PHP 5.5.0 veraltet und wird in Zukunft entfernt) prozessorientiert und objektorientiert
<?php $mysql_conf = array( 'host' => '127.0.0.1:3306', 'db' => 'test', 'db_user' => 'root', 'db_pwd' => 'root', ); $mysql_conn = @mysql_connect($mysql_conf['host'], $mysql_conf['db_user'], $mysql_conf['db_pwd']); if (!$mysql_conn) { die("could not connect to the database:\n" . mysql_error());//诊断连接错误 } mysql_query("set names 'utf8'");//编码转化 $select_db = mysql_select_db($mysql_conf['db']); 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); ?>
3. PHP- und PDO-Erweiterungen, prozessorientiert und objektorientiert
<?php $mysql_conf = array( 'host' => '127.0.0.1:3306', 'db' => 'test', 'db_user' => 'root', 'db_pwd' => 'joshua317', ); $mysqli = @new mysqli($mysql_conf['host'], $mysql_conf['db_user'], $mysql_conf['db_pwd']); if ($mysqli->connect_errno) { die("could not connect to the database:\n" . $mysqli->connect_error);//诊断连接错误 } $mysqli->query("set names 'utf8';");//编码转化 $select_db = $mysqli->select_db($mysql_conf['db']); if (!$select_db) { die("could not connect to the db:\n" . $mysqli->error); }$sql = "select uid from user where name = 'joshua';"; $res = $mysqli->query($sql); if (!$res) { die("sql error:\n" . $mysqli->error); } while ($row = $res->fetch_assoc()) { var_dump($row); } $res->free(); $mysqli->close(); ?>
Verwandte Empfehlungen:
php-SchulungDas obige ist der detaillierte Inhalt vonDrei Möglichkeiten, PHP mit der MySQL-Datenbank zu verbinden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!