1 什么是mysqli
php-mysql 函数库是 php 操作 mysql 资料库最原始的扩展库,php-mysqli 的 i
代表 Improvement
,相当于前者的增强版,也包含了相对进阶的功能,另外本身也增加了安全性,比如可以大幅度减少 SQL 注入等问题的发生。
2 mysql与mysqli的概念相关
1.mysql与mysqli都是php方面的函数集,与mysql数据库关联不大。
2.在php5版本之前,一般是用php的mysql函数去驱动MySQL数据库的,比如mysql_query()的函数,属于面向过程
3.在php5版本以后,增加了mysqli的函数功能,某种意义上讲,它是mysql系统函数的增强版,更稳定更高效更安全,与mysql_query()
对应的有mysqli_query()
,属于面向对象,用对象的方式操作驱动mysql数据库。
3 mysql与mysqli的主要区别
1.首先两个函数都是用来处理DB(数据库)的。
2.mysqli 连接是永久连接,而mysql是非永久连接。即 mysql连接每当第二次使用的时候,都会重新打开一个新的进程,而mysqli则只使用同一个进程,这样可以很大程度的减轻服务器端压力。
3.mysqli封装了诸如事务等一些高级操作,同时封装了DB操作过程中的很多可用的方法。应用比较多的地方是 mysqli的事务。
4 mysqli的优点
1.安全性、稳定性更高;
2.提供了面向对象和面向过程两种风格
5 mysqli的使用
先在phpstudy中添加mysqli扩展。
关于phpstudy,可以参见我另一篇文章: https://blog.csdn.net/linxinfa/article/details/103033142
启动mysql服务
可以修改数据库密码
接着我们就可以通过php代码来操作mysql数据库了
例
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '123456';
// Create connection
$con = mysqli_connect($dbhost,$dbuser,$dbpass);
// Check connection
// 检测连接
if (!$con) {
die("连接失败: " . mysqli_connect_error());
}
// 创建DB
$sql = "CREATE DATABASE IF NOT EXISTS testDB_01";
if(mysqli_query($con, $sql))
{
echo "创建数据库 testDB_01 成功<br>";
} else {
echo "创建数据库 testDB_01 错误: " . mysqli_error($con) . "<br>";
}
// 进入DB
$sql = "USE testDB_01";
if(mysqli_query($con, $sql))
{
echo "USE testDB_01成功<br>";
} else {
echo "USE testDB_01错误: " . mysqli_error($con) . "<br>";
}
// 创建TABLE
$sql = "CREATE TABLE IF NOT EXISTS MyGuests(
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)";
if (mysqli_query($con, $sql)) {
echo "创建数据表 MyGuests 成功<br>";
} else {
echo "创建数据表错误: " . mysqli_error($con) . "<br>";
}
// INSERT语句测试
$sql = "INSERT INTO MyGuests(firstname, lastname, email)
VALUES('xinfa', 'lin', '565192010@qq')";
if (mysqli_query($con, $sql)) {
echo "INSERT 成功<br>";
} else {
echo "INSERT 错误: " . mysqli_error($con) . "<br>";
}
// SELECT语句测试
$result = mysqli_query($con, "SELECT * FROM MyGuests");
while($row = mysqli_fetch_array($result))
{
echo $row['firstname'] . " " . $row['lastname'];
echo "<br />";
}
mysqli_close($con);
?>
测试结果