PHP5.5基于mysqli连接MySQL数据库和读取数据操作实例详解
本文实例讲述了php5.5基于mysqli连接mysql数据库和读取数据操作。分享给大家供大家参考,具体如下:
在学习1. 开启php的api支持
(1)首先修改您的php.ini的配置文件。
查找下面的语句:
;extension=php_mysqli.dll
将其修改为:
extension=php_mysqli.dll
(2)重新启动apache/iis,即可。
(3)说明:php需要单独的文件来支持这个扩展库,一般在php目录下的ext目录里能找到php_mysqli.dll文件(php <= 5.0.2 中是 libmysqli.dll),当然,在php的配置文件当中要有正确指向ext的信息(extension_dir)。假若您的php没有这个文件,您可以去下载php5的源码包。另外,这个api扩展,只能在php5以上版本使用。其它具体信息,请看下面。
2.php mysqli身份证
mysqli是“mysql, improved”的缩写,该扩展仅适用于php 5。它能用于mysql 4.1.1和更高版本。该扩展完全支持mysql 5.1中采用的鉴定协议,也支持预处理语句和多语句api。此外,该扩展还提供了先进的、面向对象的编程接口
<?php /* connect to a mysql server 连接数据库服务器 */ $link = mysqli_connect( 'localhost', /* the host to connect to 连接mysql地址 */ 'user', /* the user to connect as 连接mysql用户名 */ 'password', /* the password to use 连接mysql密码 */ 'world'); /* the default database to query 连接数据库名称*/ if (!$link) { printf("can't connect to mysql server. errorcode: %s ", mysqli_connect_error()); exit; } /* send a query to the server 向服务器发送查询请求*/ if ($result = mysqli_query($link, 'select name, population from city order by population desc limit 5')) { //print("very large cities are: "); /* fetch the results of the query 返回查询的结果 */ while( $row = mysqli_fetch_assoc($result) ){ printf("%s (%s) ", $row['name'], $row['population']); } /* destroy the result set and free the memory used for it 结束查询释放内存 */ mysqli_free_result($result); } /* close the connection 关闭连接*/ mysqli_close($link); ?>
使用 mysqli
以下实例中我们从 mydb 数据库的 myguests 表读取了 id, firstname 和 lastname 列的数据并显示在页面上:
<?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "mydb"; // 创建连接 $conn = new mysqli($servername, $username, $password, $dbname); // check connection if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } $sql = "select id, firstname, lastname from myguests"; $result = $conn->query($sql); if ($result->num_rows > 0) { // 输出数据 while($row = $result->fetch_assoc()) { echo "id: " . $row["id"]. " - name: " . $row["firstname"]. " " . $row["lastname"]. "<br>"; } } else { echo "0 结果"; } $conn->close(); ?>
以上代码解析如下:
首先,我们设置了 sql 语句从 myguests数据表中读取 id, firstname 和 lastname 三个字段。之后我们使用改 sql 语句从数据库中取出结果集并赋给复制给变量 $result。
函数 num_rows()
判断返回的数据。
如果返回的是多条数据,函数 fetch_assoc()
将结合集放入到关联数组并循环输出。 while()
循环出结果集,并输出 id, firstname 和 lastname 三个字段值。
以下实例使用 mysqli 面向过程的方式,效果类似以上代码:
实例 (mysqli - 面向过程)
<?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "mydb"; // 创建连接 $conn = mysqli_connect($servername, $username, $password, $dbname); // check connection if (!$conn) { die("连接失败: " . mysqli_connect_error()); } $sql = "select id, firstname, lastname from myguests"; $result = mysqli_query($conn, $sql); if (mysqli_num_rows($result) > 0) { // 输出数据 while($row = mysqli_fetch_assoc($result)) { echo "id: " . $row["id"]. " - name: " . $row["firstname"]. " " . $row["lastname"]. "<br>"; } } else { echo "0 结果"; } mysqli_close($conn); ?>
使用 pdo (+ 预处理)
以下实例使用了预处理语句。
选取了 myguests 表中的 id, firstname 和 lastname 字段,并放到 html 表格中:
<?php echo "<table style='border: solid 1px black;'>"; echo "<tr><th>id</th><th>firstname</th><th>lastname</th></tr>"; class tablerows extends recursiveiteratoriterator { function __construct($it) { parent::__construct($it, self::leaves_only); } function current() { return "<td style='width:150px;border:1px solid black;'>" . parent::current(). "</td>"; } function beginchildren() { echo "<tr>"; } function endchildren() { echo "</tr>" . "\n"; } } $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "mydbpdo"; try { $conn = new pdo("mysql:host=$servername;dbname=$dbname", $username, $password); $conn->setattribute(pdo::attr_errmode, pdo::errmode_exception); $stmt = $conn->prepare("select id, firstname, lastname from myguests"); $stmt->execute(); // 设置结果集为关联数组 $result = $stmt->setfetchmode(pdo::fetch_assoc); foreach(new tablerows(new recursivearrayiterator($stmt->fetchall())) as $k=>$v) { echo $v; } } catch(pdoexception $e) { echo "error: " . $e->getmessage(); } $conn = null; echo "</table>"; ?>
更多关于php相关内容感兴趣的读者可查看本站专题:《php+mysqli数据库程序设计技巧总结》、《php面向对象程序设计入门教程》、《php数组(array)操作技巧大全》、《php基本语法入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家php程序设计有所帮助。
推荐阅读
-
Python操作MySQL数据库实例详解【安装、连接、增删改查等】
-
PHP5.5基于mysqli连接MySQL数据库和读取数据操作实例详解
-
PHP5.5基于mysqli连接MySQL数据库和读取数据操作实例详解
-
Python操作MySQL数据库实例详解【安装、连接、增删改查等】
-
php mysqli操作mysqli_connect连接数据库实例详解
-
PHP连接和操作MySQL数据库基础教程_php实例
-
PHP连接和操作MySQL数据库基础教程_php实例
-
php mysqli操作mysqli_connect连接数据库实例详解
-
php mysql操作mysql_connect连接数据库实例详解
-
php mysql操作mysql_connect连接数据库实例详解