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

PHP函数:如何与MySQL数据库交互

发布时间:2023-06-19 11:47:19

PHP是一种在Web开发中广泛使用的服务器端编程语言。MySQL是一种开放源代码的关系型数据库管理系统,也是Web开发中使用最广泛的数据库之一。PHP与MySQL的结合,可以实现Web应用程序与数据库的交互,如数据的增删改查等操作。下面我们将介绍如何使用PHP与MySQL进行交互。

1. 连接MySQL数据库

要使用PHP与MySQL进行交互,首先需要建立一个连接。连接MySQL数据库需要提供以下几个参数:主机名、用户名、密码和数据库名称。在PHP中,可以使用mysqli_connect()函数或PDO类来建立连接。

mysqli_connect()函数示例:

$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";

// 创建连接
$conn = mysqli_connect($servername, $username, $password, $dbname);

// 检查连接是否成功
if (!$conn) {
    die("连接失败: " . mysqli_connect_error());
}
echo "连接成功";

PDO类示例:

$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";

// 创建连接
try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    // 设置 PDO 错误模式为异常
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "连接成功";
} catch(PDOException $e) {
    echo "连接失败: " . $e->getMessage();
}

2. 执行查询语句

连接MySQL数据库成功后,就可以执行查询语句了。在PHP中,可以使用mysqli_query()函数或PDO::query()方法来执行查询语句。例如,查询user表中所有记录的示例代码如下:

mysqli_query()函数示例:

$sql = "SELECT * FROM user";
$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {
    // 输出每行数据
    while($row = mysqli_fetch_assoc($result)) {
        echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Email: " . $row["email"]. "<br>";
    }
} else {
    echo "0 结果";
}

PDO::query()方法示例:

$sql = "SELECT * FROM user";
$result = $conn->query($sql);

if ($result->rowCount() > 0) {
    // 输出每行数据
    while($row = $result->fetch(PDO::FETCH_ASSOC)) {
        echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Email: " . $row["email"]. "<br>";
    }
} else {
    echo "0 结果";
}

3. 执行插入、更新和删除操作

除了查询,还有插入、更新和删除操作。在PHP中,可以使用mysqli_query()函数或PDO::exec()方法来执行这些操作。

mysqli_query()函数示例:

插入:

$sql = "INSERT INTO user (name, email) VALUES ('John', 'john@example.com')";

if (mysqli_query($conn, $sql)) {
    echo "新记录插入成功";
} else {
    echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}

更新:

$sql = "UPDATE user SET email='john1@example.com' WHERE id=1";

if (mysqli_query($conn, $sql)) {
    echo "记录更新成功";
} else {
    echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}

删除:

$sql = "DELETE FROM user WHERE id=1";

if (mysqli_query($conn, $sql)) {
    echo "记录删除成功";
} else {
    echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}

PDO::exec()方法示例:

插入:

$sql = "INSERT INTO user (name, email) VALUES ('John', 'john@example.com')";

if ($conn->exec($sql)) {
    echo "新记录插入成功";
} else {
    echo "Error: " . $sql . "<br>" . $conn->errorInfo();
}

更新:

$sql = "UPDATE user SET email='john1@example.com' WHERE id=1";

if ($conn->exec($sql)) {
    echo "记录更新成功";
} else {
    echo "Error: " . $sql . "<br>" . $conn->errorInfo();
}

删除:

$sql = "DELETE FROM user WHERE id=1";

if ($conn->exec($sql)) {
    echo "记录删除成功";
} else {
    echo "Error: " . $sql . "<br>" . $conn->errorInfo();
}

4. 关闭连接

最后,需要关闭连接,释放资源。在PHP中,可以使用mysqli_close()函数或PDO::null表示的特殊值来关闭连接。

mysqli_close()函数示例:

mysqli_close($conn);

PDO::null表示的特殊值示例:

$conn = null;

总结:

PHP与MySQL的交互非常简单和方便,上面的示例代码可以用于实现基本的增删改查操作。需要注意的是,SQL语句中的数据和字段名称需要通过htmlspecialchars()函数进行过滤,以避免SQL注入攻击。此外,建议使用PDO类而不是mysqli扩展,因为PDO类提供了更多、更优质且更好的接口。