一、mysql与mysqli的概念相关:
1、mysql与mysqli都是php方面的函数集,与mysql数据库关联不大。
2、在php5版本之前,一般是用php的mysql函数去驱动mysql数据库的,比如mysql_query()的函数,属于面向过程3、在php5版本以后,增加了mysqli的函数功能,某种意义上讲,它是mysql系统函数的增强版,更稳定更高效更安全,与mysql_query()对应的有mysqli_query(),属于面向对象,用对象的方式操作驱动mysql数据库
二、mysql与mysqli的区别:
1、mysql是非持继连接函数,mysql每次链接都会打开一个连接的进程。
2、mysqli是永远连接函数,mysqli多次运行mysqli将使用同一连接进程,从而减少了服务器的开销。mysqli封装了诸如事务等一些高级操作,同时封装了DB操作过程中的很多可用的方法。
三、mysqli的用法:
ConnectionMySQL.php
<?php
// 设置返回json格式数据
header('content-type:application/json;charset=utf8');
$mysql_server_name = "localhost"; //数据库服务器名称
$mysql_username = "root"; // 连接数据库用户名
$mysql_password = "xxxx"; // 连接数据库密码
$mysql_database = "stalker"; // 数据库的名字
$mysql_port = "3306"; //端口号
$conn; //数据库连接标识;
$result; //执行query命令的结果资源标识
//Open a new connection to the MySQL server
$conn = new mysqli($mysql_server_name, $mysql_username, $mysql_password, $mysql_database, $mysql_port);
//Output any connection error
if($conn->connect_error) {
die('Error:('.$conn->connect_errno .') '.$conn->connect_error);
}
SqlStatement
<?php
$sql; //sql执行语句
$row; //返回的条目数
//要执行的SQL语句
$sql="SELECT * FROM `personinfo`";
$results = array();
$i = 0;
//调用ConnectionMySQL.php文件进行数据库连接操作
require('ConnectionMySQL.php');
foreach($conn->query($sql) as $row) {
$results[$i] = $row;
$i++;
}
// 将结果转成json格式
echo json_encode(array('jsonObj'=>$results));
// 关闭连接
$conn->close();
结果:
{"jsonObj":[{"id":"001","name":"\u5f20\u5a01","type":"Android"},{"id":"002","name":"\u5f20\u745e\u5cf0","type":"Android"},{"id":"003","name":"\u5f20\u671d","type":"Android"},{"id":"004","name":"\u5f20\u9a8b","type":"Android"}]}
一般是mysqli是没有开启的,因为mysqli类不是默认开启的,win下要改php.ini,去掉php_mysqli.dll前的;,linux下要把mysqli编译进去。
四、mysql_connect()与mysqli_connect()
1.使用mysqli,可以把数据库名称当作参数传给mysqli_connect()函数,也可以传递给mysqli的构造函数;
2.如果调用mysqli_query()或mysqli的对象查询query()方法,则连接标识是必需的。