在PHP中,使用MySQLi函数连接和操作MySQL数据库时,需要正确设置参数。以下是一些常用的MySQLi函数及其参数设置:
mysqli_connect()
参数说明:
$host
:MySQL服务器的主机名或IP地址。$username
:用于连接到MySQL服务器的用户名。$password
:用于连接到MySQL服务器的密码。$database
:要连接的MySQL数据库名称(可选)。$port
:MySQL服务器的端口号(默认为3306)。示例代码:
$conn = mysqli_connect("localhost", "username", "password", "database");
if (!$conn) {
die("连接失败: " . mysqli_connect_error());
}
echo "连接成功";
mysqli_query()
参数说明:
$connection
:一个有效的MySQLi连接对象。$query
:要执行的SQL查询字符串。示例代码:
$conn = mysqli_connect("localhost", "username", "password", "database");
if (!$conn) {
die("连接失败: " . mysqli_connect_error());
}
$sql = "SELECT id, name FROM users";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
echo "id: " . $row["id"]. " - Name: " . $row["name"]. "<br>";
}
} else {
echo "0 结果";
}
mysqli_close($conn);
mysqli_prepare()
参数说明:
$connection
:一个有效的MySQLi连接对象。$query
:要准备的SQL查询字符串。示例代码:
$conn = mysqli_connect("localhost", "username", "password", "database");
if (!$conn) {
die("连接失败: " . mysqli_connect_error());
}
$stmt = mysqli_prepare($conn, "INSERT INTO users (name, age) VALUES (?, ?)");
if (!$stmt) {
die("准备查询失败: " . mysqli_error($conn));
}
$name = "John";
$age = 25;
mysqli_stmt_bind_param($stmt, "si", $name, $age);
if (mysqli_stmt_execute($stmt)) {
echo "新记录插入成功";
} else {
echo "Error: " . mysqli_error($conn);
}
mysqli_stmt_close($stmt);
mysqli_close($conn);
mysqli_real_escape_string()
参数说明:
$connection
:一个有效的MySQLi连接对象。$string
:要转义的字符串。示例代码:
$conn = mysqli_connect("localhost", "username", "password", "database");
if (!$conn) {
die("连接失败: " . mysqli_connect_error());
}
$username = "O'Reilly";
$password = "secret";
$username = mysqli_real_escape_string($conn, $username);
$password = mysqli_real_escape_string($conn, $password);
$sql = "SELECT * FROM users WHERE username = '$username' AND password = '$password'";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
echo "登录成功";
}
} else {
echo "用户名或密码错误";
}
mysqli_close($conn);
注意:在实际开发中,为了提高安全性,建议使用预处理语句(prepared statements)来防止SQL注入攻击。