MySQL 从mysql连接移植到mysqli

MySQL 从mysql连接移植到mysqli

在使用MySQL数据库时,PHP开发人员经常使用mysql连接函数来连接数据库并执行查询。但随着PHP 5.5版本的发布,该函数已被弃用,并从PHP 7开始已经被删除。取而代之的是mysqli类,它提供了更强大的功能和更好的性能。

在这篇文章中,我们将介绍如何将你的MySQL连接从mysql连接函数移植到mysqli类。

阅读更多:MySQL 教程

为什么要使用mysqli

mysqli比mysql连接更好,因为它具有以下优点:

  1. 支持面向对象的编程方式。
  2. 提供了更多的API函数。
  3. 具有更好的性能和安全性。
  4. 能够处理更多的数据库操作,如预备语句和存储过程。

从mysql连接到mysqli:连接数据库

mysql连接

在php 5.5之前,可以使用以下方法连接到MySQL数据库:

$link = mysql_connect('localhost', 'username', 'password');
mysql_select_db('database_name', $link);

这将建立到MySQL服务器的连接,并选择要使用的数据库。

mysqli连接

mysqli提供了两种连接方法:面向过程和面向对象。下面是使用面向过程的mysqli连接方法:

$link = mysqli_connect('localhost', 'username', 'password', 'database_name');

这将建立到MySQL服务器的连接,并选择要使用的数据库。

以下是使用面向对象的mysqli连接方法:

$mysqli = new mysqli('localhost', 'username', 'password', 'database_name');

这将创建一个mysqli对象,其中包含与MySQL服务器的连接。

发送查询

mysql连接

在php 5.5之前,可以使用mysql_query函数发送查询:

$result = mysql_query('SELECT * FROM table_name');

该函数将执行所提供的查询并返回结果集。

mysqli连接

以下是使用面向过程的mysqli_query方法发送查询:

$result = mysqli_query($link, 'SELECT * FROM table_name');

该函数将执行所提供的查询并返回结果集。

以下是使用面向对象的mysqli_query方法发送查询:

$result = $mysqli->query('SELECT * FROM table_name');

该函数将执行所提供的查询并返回结果集。

请注意,在面向对象的mysqli_query方法中,$mysqli是mysqli对象的实例。

从结果集中提取数据

mysql连接

在php 5.5之前,可以使用mysql_fetch_array函数从结果集中提取数据:

while(row = mysql_fetch_array(result)) {
    echo $row['column_name'];
}

该函数将从结果集中获取一行,并将其作为关联数组返回。

mysqli连接

以下是使用面向过程的mysqli_fetch_array方法从结果集中提取数据:

while(row = mysqli_fetch_array(result)) {
    echo $row['column_name'];
}

以下是使用面向对象的mysqli_fetch_array方法从结果集中提取数据:

while(row =result->fetch_array()) {
    echo $row['column_name'];
}

请注意,在面向对象的mysqli_fetch_array方法中,$result是mysqli_result对象的实例。

预备语句

预备语句可以防止SQL注入攻击,并提高查询性能。以下是使用mysqli预备语句的示例:

$stmt = $mysqli->prepare("SELECT * FROM table_name WHERE column_name1 = ? AND column_name2 = ?");
$stmt->bind_param("ss", $value1, $value2);

$value1 = "value1";
$value2 = "value2";

$stmt->execute();

在这个例子中,将创建一个准备好的语句,并将绑定参数。然后,执行查询。

存储过程

存储过程是一个在MySQL数据库中定义的函数。以下是使用mysqli存储过程的示例:

$stmt = $mysqli->prepare("CALL sp_name(?, ?)");
$stmt->bind_param("ss", $value1, $value2);

$value1 ="value1";
$value2 = "value2";

$stmt->execute(); 

在这个例子中,将创建一个准备好的语句,调用存储过程,并绑定参数。然后,执行存储过程。

错误处理

mysqli提供了更可靠的错误处理方法,使得开发人员可以更容易地解决问题。以下是使用mysqli错误处理方法的示例:

if (mysqli->connect_errno) {
    echo "Failed to connect to MySQL: " .mysqli->connect_error;
}

if (!result =mysqli->query("SELECT * FROM table_name")) {
    echo "Query failed: " . $mysqli->error;
}

在这个例子中,将检查连接是否失败,并输出错误消息。如果查询失败,则输出错误消息。

总结

在本文中,我们介绍了mysqli类,它提供了更强大的功能和更好的性能。我们还介绍了如何从mysql连接函数移植到mysqli类,包括连接到数据库,发送查询,从结果集中提取数据,使用预备语句和存储过程以及错误处理。如果你想更好地使用MySQL数据库,并提高你的PHP应用程序的性能和安全性,那么使用mysqli是一个不错的选择。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程