mysqli 是 PHP 中的一个扩展,用于与 MySQL 数据库进行交互。它提供了面向对象和过程式的 API,使得开发者可以方便地执行 SQL 查询、处理结果集以及管理数据库连接。
mysqli 是对 MySQL 数据库原生协议的封装,性能较高。mysqli 主要有两种使用方式:
mysqli 广泛应用于各种需要与 MySQL 数据库进行交互的 PHP 项目中,如网站、Web 应用、API 等。
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// 创建连接
$conn = mysqli_connect($servername, $username, $password, $dbname);
// 检查连接
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
// 注册
if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST['register'])) {
$username = $_POST['username'];
$password = password_hash($_POST['password'], PASSWORD_DEFAULT);
$sql = "INSERT INTO users (username, password) VALUES ('$username', '$password')";
if (mysqli_query($conn, $sql)) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
}
// 登录
if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST['login'])) {
$username = $_POST['username'];
$password = $_POST['password'];
$sql = "SELECT * FROM users WHERE username = '$username'";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
$row = mysqli_fetch_assoc($result);
if (password_verify($password, $row['password'])) {
echo "Login successful";
} else {
echo "Invalid password";
}
} else {
echo "User not found";
}
}
mysqli_close($conn);
?><?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// 注册
if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST['register'])) {
$username = $_POST['username'];
$password = password_hash($_POST['password'], PASSWORD_DEFAULT);
$sql = "INSERT INTO users (username, password) VALUES ('$username', '$password')";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
// 登录
if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST['login'])) {
$username = $_POST['username'];
$password = $_POST['password'];
$sql = "SELECT * FROM users WHERE username = '$username'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
$row = $result->fetch_assoc();
if (password_verify($password, $row['password'])) {
echo "Login successful";
} else {
echo "Invalid password";
}
} else {
echo "User not found";
}
}
$conn->close();
?>mysqli_real_escape_string 函数来转义特殊字符,但更推荐使用预处理语句。password_hash 函数对密码进行哈希处理,不要明文存储密码。password_verify 函数验证用户输入的密码。通过以上示例代码和解决方法,你应该能够实现基本的 mysqli 登录注册功能,并解决常见的技术问题。
Techo Day
“中小企业”在线学堂
云+社区沙龙online
Game Tech
Game Tech
Game Tech
Game Tech
“中小企业”在线学堂
北极星训练营
中国航空运输协会安保培训
北极星训练营