欢迎访问宙启技术站
智能推送

PHP连接MySQL数据库的函数使用方法

发布时间:2023-06-18 22:50:33

PHP是一种非常流行的服务器端脚本语言,经常用于Web开发。而MySQL则是一种开放源代码的关系型数据库管理系统,是非常常用的数据库之一。PHP连接MySQL数据库可以让我们在Web开发中更轻松地操作数据,本文将介绍PHP连接MySQL数据库的函数使用方法。

I. 连接MySQL数据库:

在PHP中连接MySQL数据库需要使用mysqli_connect()或者PDO::construct()函数。两者都可以连接MySQL数据库,不同之处在于mysqli_connect()函数使用mysqli扩展库,而PDO::construct()函数使用PDO扩展库。以下是两个函数的示例代码:

mysqli_connect()函数:

$hostname = 'localhost';
$username = 'user';
$password = 'pass';
$dbname = 'database';
$mysqli = mysqli_connect($hostname, $username, $password, $dbname);
if (!$mysqli) {
    die('连接失败: ' . mysqli_connect_error());
}

PDO::construct()函数:

$hostname = 'localhost';
$username = 'user';
$password = 'pass';
$dbname = 'database';
$dsn = "mysql:host=$hostname;dbname=$dbname";
try {
    $pdo = new PDO($dsn, $username, $password);
} catch (PDOException $e) {
    die('连接失败: ' . $e->getMessage());
}

在以上代码中,$hostname是MySQL数据库的主机名,$username是数据库用户名,$password是数据库密码,$dbname是要连接的数据库名。如果连接失败,则会输出相应的错误信息。

II. 关闭MySQL数据库连接:

在使用完MySQL数据库之后,应当关闭数据库连接以释放资源。mysqli_close()函数和PDO::null()函数都可以关闭MySQL数据库连接。以下是两个函数的示例代码:

mysqli_close()函数:

mysqli_close($mysqli);

PDO::null()函数:

$pdo = null;

III. 执行SQL语句:

连接MySQL数据库之后,需要执行各种SQL语句来操作数据库。在PHP中,可以使用mysqli_query()函数或者PDO::query()函数来执行SQL语句。以下是两个函数的示例代码:

mysqli_query()函数:

$sql = "SELECT * FROM table";
$result = mysqli_query($mysqli, $sql);
if (!$result) {
    die('查询失败: ' . mysqli_error($mysqli));
}
while ($row = mysqli_fetch_assoc($result)) {
    // 处理查询结果
}
mysqli_free_result($result);

PDO::query()函数:

$sql = "SELECT * FROM table";
$result = $pdo->query($sql);
if (!$result) {
    die('查询失败: ' . $pdo->errorInfo());
}
while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
    // 处理查询结果
}
$result = null;

在以上代码中,$sql是要执行的SQL语句,$result是执行SQL语句的结果,mysqli_query()函数和PDO::query()函数的返回值都是结果对象。如果执行失败,则输出相应的错误信息。可以使用mysqli_fetch_assoc()函数或者PDO::fetch()函数来处理结果集中的数据,使用mysqli_free_result()函数或者PDOStatement::closeCursor()函数来关闭结果集。

IV. 预处理SQL语句:

预处理SQL语句可以有效地避免SQL注入攻击,并且可以提高执行效率。在PHP中,可以使用mysqli_prepare()函数或者PDO::prepare()函数来预处理SQL语句。以下是两个函数的示例代码:

mysqli_prepare()函数:

$sql = "INSERT INTO table (col1, col2) VALUES (?, ?)";
$stmt = mysqli_prepare($mysqli, $sql);
mysqli_stmt_bind_param($stmt, 'ss', $val1, $val2);
$val1 = 'value1';
$val2 = 'value2';
if (!mysqli_stmt_execute($stmt)) {
    die('执行失败: ' . mysqli_stmt_error($stmt));
}
mysqli_stmt_close($stmt);

PDO::prepare()函数:

$sql = "INSERT INTO table (col1, col2) VALUES (?, ?)";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(1, $val1);
$stmt->bindParam(2, $val2);
$val1 = 'value1';
$val2 = 'value2';
if (!$stmt->execute()) {
    die('执行失败: ' . $stmt->errorInfo());
}
$stmt = null;

在以上代码中,$sql是要预处理的SQL语句,$stmt是预处理语句的结果对象。可以使用mysqli_stmt_bind_param()函数或者PDOStatement::bindParam()函数来绑定参数,在执行预处理语句时,可以把变量赋给绑定参数。如果执行失败,则输出相应的错误信息。可以使用mysqli_stmt_close()函数或者PDOStatement::closeCursor()函数来关闭预处理语句。

V. PHP连接MySQL数据库的其他函数:

除了以上介绍的函数之外,PHP连接MySQL数据库还有一些其他的函数,例如mysqli_real_escape_string()函数用于对特殊字符进行转义,防止SQL注入攻击;mysqli_fetch_array()函数用于取得结果集中的数据并以数组形式返回。以下是两个函数的示例代码:

mysqli_real_escape_string()函数:

$str = "it's a string";
$str = mysqli_real_escape_string($mysqli, $str);
$sql = "INSERT INTO table (col) VALUES ('$str')";
mysqli_query($mysqli, $sql);

mysqli_fetch_array()函数:

$sql = "SELECT * FROM table";
$result = mysqli_query($mysqli, $sql);
while ($row = mysqli_fetch_array($result)) {
    // 处理查询结果
}
mysqli_free_result($result);

以上就是PHP连接MySQL数据库的函数使用方法的详细介绍。连接MySQL数据库是Web开发中必不可少的一部分,掌握以上函数的使用方法可以帮助我们更轻松地操作MySQL数据库。