一、理解
mysql与mysqli都是PHP语言使用数据库的函数。
在php5版本之前,一般是用php的mysql函数去驱动mysql数据库的,如mysql_query()的函数,属于面向过程。
在php5版本以后,增加了mysqli的函数功能,某种意义上,它是mysql系统函数的增强版,更为稳定高效安全。
二、区别
mysql | mysqli |
用于PHP 5之前的版本 |
用于PHP 5及以后版本中 |
非永久连接 | 永久连接 |
非持续连接函数 每次使用,都会重新打开一个新的进程 |
永久连接 一直都只使用同一个进程 |
mysql需要永久连接,需使用函数mysql_pconnect() | 优点,很大程度的减轻服务器端压力 |
三、写法
$servername = "localhost";
$username = "root";
$password = "password";
$db_name = ‘test‘;
mysql(面向过程):
<?php
$con = mysql_connect($servername,$username,$password);//数据库连接
$select_db = mysql_select_db($db_name);// 数据库选择
if (!$select_db) {
die("could not connect to the db:\n" . mysql_error());
}
//查询代码
$sql = "select * from table";
$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($con);
?>
mysqli(面向过程):
<?php
$con = @mysqli_connect($servername, $username, $password,$db_name);// 连接数据库
if (!$con) {
die("连接失败: " . mysqli_connect_error());
}
$sql = "select * from table";
$result = mysqli_query($con,$sql);// 执行sql语句
$data = mysqli_fetch_all($result); // 从结果集中获取所有数据
mysqli_free_result($result);//从结果集中取得行,然后释放结果内存
mysqli_close($link);// 关闭数据库连接
?>
mysqli(面向对象):
<?php
$mysqli = @new mysqli($servername, $username, $password,$db_name);// 连接数据库
if($mysqli->connect_errno){
die("连接失败: " . $mysqli->connect_errno);
}
$mysqli->set_charset(‘utf8‘);
$sql = "select * from table";
$result = $mysqli->query($sql);// 执行sql语句
$data = $result->fetch_array(); // 从结果集中获取所有数据
$mysqli->close($link);// 关闭数据库连接
?>