php mySQL实现
PHP 与 MySQL 实现
连接 MySQL 数据库
使用 mysqli 扩展连接 MySQL 数据库:
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database_name";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
执行查询
执行 SQL 查询并获取结果:
$sql = "SELECT id, name, email FROM users";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// 输出每行数据
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Email: " . $row["email"]. "<br>";
}
} else {
echo "0 结果";
}
插入数据
向数据库中插入新记录:
$sql = "INSERT INTO users (name, email) VALUES ('John Doe', 'john@example.com')";
if ($conn->query($sql) === TRUE) {
echo "新记录插入成功";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
更新数据
更新数据库中的记录:
$sql = "UPDATE users SET email='john.doe@example.com' WHERE id=1";
if ($conn->query($sql) === TRUE) {
echo "记录更新成功";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
删除数据
从数据库中删除记录:
$sql = "DELETE FROM users WHERE id=1";
if ($conn->query($sql) === TRUE) {
echo "记录删除成功";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
关闭连接
完成操作后关闭数据库连接:
$conn->close();
使用预处理语句
防止 SQL 注入,使用预处理语句:
$stmt = $conn->prepare("INSERT INTO users (name, email) VALUES (?, ?)");
$stmt->bind_param("ss", $name, $email);
// 设置参数并执行
$name = "Jane Doe";
$email = "jane@example.com";
$stmt->execute();
echo "新记录插入成功";
$stmt->close();
错误处理
捕获并处理数据库操作中的错误:
try {
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
throw new Exception("连接失败: " . $conn->connect_error);
}
} catch (Exception $e) {
echo $e->getMessage();
}
事务处理
确保数据完整性,使用事务:
$conn->begin_transaction();
try {
$conn->query("INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com')");
$conn->query("INSERT INTO users (name, email) VALUES ('Bob', 'bob@example.com')");
$conn->commit();
echo "事务成功";
} catch (Exception $e) {
$conn->rollback();
echo "事务失败: " . $e->getMessage();
}
结果集处理
处理查询结果集的不同方法:
// 获取关联数组
$row = $result->fetch_assoc();
// 获取数字索引数组
$row = $result->fetch_row();
// 获取对象
$row = $result->fetch_object();
数据库元信息
获取数据库和表的元信息:

// 列出所有表
$result = $conn->query("SHOW TABLES");
while ($row = $result->fetch_row()) {
echo "表名: " . $row[0] . "<br>";
}
// 获取表结构
$result = $conn->query("DESCRIBE users");
while ($row = $result->fetch_assoc()) {
echo "字段: " . $row['Field'] . " 类型: " . $row['Type'] . "<br>";
}






