Heim >Backend-Entwicklung >PHP7 >Erklären Sie, wie Sie PHP7 mit der MySQL-Datenbank verbinden
Empfohlen (kostenlos): PHP7
Benutzer von PHP 5 können die MySQL-Erweiterung, MySQLi und PDO_MYSQL verwenden. PHP 7 hat die MySQL-Erweiterung entfernt, so dass nur die beiden letztgenannten Optionen übrig bleiben
Dieses Dokument erklärt die Terminologie jeder API und hilft uns, die API zu verwenden und zugehörige API-Informationen zu verstehen.
PHP bietet drei verschiedene APIs zur Verbindung mit der MySQL-Datenbank. Der folgende Beispielcode zeigt drei verschiedene Möglichkeiten, eine Verbindung zur MySQL-Datenbank herzustellen.
/* * mysqli * 数据库地址,登陆账号,密码,数据库名称 */ $mysqli = new mysqli("localhost", "root", "", "student"); $sql = "SELECT * FROM tb_user"; $result = $mysqli->query($sql); $row = $result->fetch_assoc(); // 从结果集中取得一行作为关联数组 echo $row["password"]; /* free result set */ $result->free(); /* close connection */ $mysqli->close();
/* * 第一个参数是mysql:host,第二是dbname,第三个账户名,第四个密码 */ try { $pdo = new PDO("mysql:host=localhost;dbname=student", "root", ""); } catch (PDOException $e) { echo 'Connection failed: ' . $e->getMessage(); } $sql = "select * from tb_user"; echo $sql . "<BR>"; $pdo->query('set names utf8;'); $result = $pdo->query($sql); $rows = $result->fetchAll(); foreach ($rows as $row) { $username = $row[1]; $pwd = $row[2]; echo $username; }
Wir empfehlen die Verwendung der Erweiterung mysqli oder PDO_Mysql
. Es wird nicht empfohlen, die alte Erweiterung mysql in der Neuentwicklung zu verwenden, da sie in PHP5.5.0 nicht mehr verwendet wird und in PHP7.0 entfernt wurde.
Es ist wichtig, die Kodierung festzulegen, es ist utf8 statt uft-8
$conn->set_charset("utf8");或者这样也可以$conn->query("set names utf8;");<pre style="font-family: 'DejaVu Sans Mono'; font-size: 15pt; background-color: rgb(255, 255, 255);">
Konzept:
Abfragen mit und ohne Cache
Abfragen verwenden standardmäßig zwischengespeicherte Abfragen. Das bedeutet, dass die Abfrageergebnisse sofort vom MySQL-Server an PHP gesendet und dann im PHP-Parser-Speicher abgelegt werden. Dies ermöglicht zusätzliche Operationen wie das Zählen von Zeilen, das Verschieben oder Suchen des aktuellen Ergebniszeigers. Es ermöglicht auch weitere Abfragen für dieselbe Verbindung und denselben Ergebnissatz. Der Nachteil des Caching-Modus besteht darin, dass große Ergebnismengen möglicherweise große Mengen an Speicher benötigen, der belegt ist, bis die Ergebnismenge gelöscht oder freigegeben wird, was am Ende der Anforderung automatisch erfolgt. Der Begriff „gespeicherte Ergebnisse“ bezeichnet den Caching-Modus, bei dem alle Ergebnissätze auf einmal gespeichert werden.
MySQL-Abfrage ohne Cache wird ausgeführt und eine Ressource wird sofort zurückgegeben. Die Daten warten darauf, dass der MySQL-Server verbunden und abgerufen wird. Dies verbraucht zwar weniger Speicher auf der PHP-Seite, erhöht aber die Belastung des Servers. Dies gilt so lange, bis alle Ergebnismengen vom Server abgerufen wurden und keine Abfragen über dieselbe Verbindung gesendet wurden. Abfragen ohne Zwischenspeicherung werden auch als Ergebnisverbrauch bezeichnet.
Aus diesen Merkmalen geht hervor, dass zwischengespeicherte Abfragen verwendet werden, wenn Sie nur eine begrenzte Ergebnismenge erhalten möchten oder die Anzahl der Zeilen in der zurückgegebenen Ergebnismenge kennen möchten, bevor Sie die Ergebnismenge lesen. Der nicht zwischengespeicherte Abfragemodus wird verwendet, wenn Sie große Datenmengen zurückgeben möchten.
Da die Standardeinstellung der zwischengespeicherte Abfragemodus ist, wird im folgenden Beispiel überprüft, wie die Abfrage-API ohne Cache ausgeführt wird.
<?php $mysqli = new mysqli("localhost", "my_user", "my_password", "world"); $uresult = $mysqli->query("SELECT Name FROM City", MYSQLI_USE_RESULT); if ($uresult) { while ($row = $uresult->fetch_assoc()) { echo $row['Name'] . PHP_EOL; } } $uresult->close(); ?>
Das obige ist der detaillierte Inhalt vonErklären Sie, wie Sie PHP7 mit der MySQL-Datenbank verbinden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!