Recommandé (gratuit) : PHP7
Les utilisateurs de PHP 5 peuvent utiliser l'extension mysql, mysqli et PDO_MYSQL. PHP 7 a supprimé l'extension mysql, ne laissant que les deux dernières options
Ce document explique la terminologie de chaque API, nous aidant à utiliser l'API et à comprendre les informations associées.
PHP fournit trois API différentes pour se connecter à la base de données mysql. L'exemple de code ci-dessous montre 3 manières différentes de se connecter à la base de données MySQL.
/* * 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; }
Nous recommandons d'utiliser l'extension mysqli ou PDO_Mysql
Il n'est pas recommandé d'utiliser l'ancienne extension mysql dans les nouveaux développements car elle n'est plus utilisée en PHP5.5.0 et en PHP7. .0 a été supprimé.
Il est important de paramétrer l'encodage, c'est utf8 au lieu de 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);">
Concept :
Requêtes avec et sans cache
Les requêtes utilisent des requêtes mises en cache par défaut. Cela signifie que les résultats de la requête sont immédiatement envoyés du serveur MySQL vers PHP, puis stockés dans la mémoire de l'analyseur PHP. Cela permet des opérations supplémentaires telles que compter les lignes, déplacer ou rechercher le pointeur de résultat actuel. Il permet également d'autres requêtes sur la même connexion et le même jeu de résultats. L'inconvénient du mode mise en cache est que les jeux de résultats volumineux peuvent nécessiter de grandes quantités de mémoire, qui sont occupées jusqu'à ce que le jeu de résultats soit effacé ou libéré, ce qui est effectué automatiquement à la fin de la requête. Le terme résultats stockés est utilisé pour indiquer le mode de mise en cache, dans lequel tous les ensembles de résultats sont enregistrés en même temps.
La requête MySQL sans cache est exécutée et une ressource est renvoyée immédiatement. Les données attendent que le serveur MySQL soit connecté et obtenu. Cela utilise moins de mémoire côté php, mais augmente la charge sur le serveur. Ceci jusqu'à ce que tous les jeux de résultats aient été récupérés du serveur et qu'aucune requête n'ait été envoyée via la même connexion. Les requêtes sans mise en cache sont également appelées consommer des résultats.
Comme le montrent ces caractéristiques, les requêtes mises en cache sont utilisées lorsque vous souhaitez uniquement obtenir un ensemble de résultats limité ou connaître le nombre de lignes dans l'ensemble de résultats renvoyé avant de lire l'ensemble de résultats. . Le mode de requête non mis en cache est utilisé lorsque vous souhaitez renvoyer de grandes quantités de données.
Étant donné que le mode de requête mis en cache est le mode par défaut, l'exemple suivant vérifiera comment exécuter l'API de requête sans cache.
<?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(); ?>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!