Heim >Backend-Entwicklung >PHP-Problem >Welche Möglichkeiten gibt es, eine Verbindung zur Datenbank in PHP herzustellen?

Welche Möglichkeiten gibt es, eine Verbindung zur Datenbank in PHP herzustellen?

青灯夜游
青灯夜游Original
2019-10-16 14:10:332288Durchsuche

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). Im Folgenden finden Sie eine Zusammenfassung der oben genannten drei Verbindungsmethoden zur Vorbereitung auf verschiedene Szenarien . Wählen Sie die beste Lösung.

Welche Möglichkeiten gibt es, eine Verbindung zur Datenbank in PHP herzustellen?

Die MySQL-Erweiterung für 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 MySQL4 ersetzt. 1.3 oder neue erweiterte Funktionen in neueren Versionen. 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:

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

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;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);
?>

3. PHP- und PDO-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();
?>

Für mehr PHP-bezogenes Wissen, Bitte besuchen Sie die

php-chinesische Website

!

Das obige ist der detaillierte Inhalt vonWelche Möglichkeiten gibt es, eine Verbindung zur Datenbank in PHP herzustellen?. 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
Vorheriger Artikel:Wie funktioniert PHPFPM?Nächster Artikel:Wie funktioniert PHPFPM?