PHP 写入数据库失败可能由多种原因引起。以下是一些常见的原因及其解决方法:
php
$conn = new mysqli("localhost", "username", "password", "database");
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
php
$sql = "INSERT INTO users (username, email) VALUES ('john_doe', 'john@example.com')";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
sql
GRANT INSERT ON database.* TO 'username'@'localhost';
php
$sql = "INSERT INTO users (username, age) VALUES ('john_doe', 25)";
php
$sql = "INSERT INTO users (username) VALUES ('john_doe')";
php
$sql = "INSERT INTO users (id, username) VALUES (1, 'john_doe')";
sql
UNLOCK TABLES;
try-catch
块捕获异常,并启用错误报告。
php
try {
$conn = new PDO("mysql:host=localhost;dbname=database", "username", "password");
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "INSERT INTO users (username, email) VALUES ('john_doe', 'john@example.com')";
$conn->exec($sql);
} catch(PDOException $e) {
echo "Error: " . $e->getMessage();
}
max_execution_time
或 memory_limit
设置过低。php.ini
) 中的相关设置。
ini
max_execution_time = 300
memory_limit = 256M
在排查 PHP 写入数据库失败的问题时,建议从数据库连接、SQL 语句、权限、数据类型、字段长度、主键冲突、表锁定、错误处理、服务器状态和 PHP 配置等方面逐一排查。通过逐步排除问题,可以找到并解决导致写入失败的根本原因。