Php 如果存在连接错误,如何在表中插入行?
如果存在连接错误,我想在表“logs”中输入一条记录,那么我该如何做呢 日志表结构为Php 如果存在连接错误,如何在表中插入行?,php,mysql,insert,database-connection,Php,Mysql,Insert,Database Connection,如果存在连接错误,我想在表“logs”中输入一条记录,那么我该如何做呢 日志表结构为 create table logs( id int(20) AUTO_INCREMENT primary key, class_name varchar(20), function_name varchar(20), error varchar(200), error_date datetime)); 这是我的database.php <?php class Database{ public
create table logs(
id int(20) AUTO_INCREMENT primary key,
class_name varchar(20),
function_name varchar(20),
error varchar(200),
error_date datetime));
这是我的database.php
<?php
class Database{
public $server = "localhost";
public $user = "root";
public $password = "";
public $table_name = "";
public $database_name = "todo_application";
public $class_name = "Database";
public $function_name = "";
public $database_connection = "";
//Constructor
public function __construct(){
//establishes database connection
$this->database_connection = new mysqli($this->server,
$this->user,
$this->password,
$this->database_name);
if($this->database_connection->connect_error)
die("connection failed".$this->database_connection->connect_error);
}
//Destructor
public function __destruct(){
//Terminates the database connection
$this->database_connection->close();
}
//Function to run the database query.
//Input : Database query.
//Output : Returns array of the result.
public function run_query($sql_query){
$this->function_name = "run_query";
try{
if(!$this->database_connection){
$output = $this->database_connection->query($sql_query);
if($output){
$result["status"] = 1;
$result["array"] = $output;
}
else{
$result["status"] = 0;
$result["message"] = "Query error";
}
}
else{
throw new Exception ("Connection error");
}
}
catch(Exception $error){
$result["status"] = 0;
$result["message"] = $error->getMessage();
$this->error_table($this->class_name, $this->function_name, "Connection error", date('Y-m-d H:i:s'));
}
return $result;
}
//Function to insert a error in the table
//Input : class name, function name , error & date.
public function error_table($class_name, $function_name, $error_message, $date){
$sql_query = "insert into `logs`( `class_name`, `function_name`, `error`, `error_date`) VALUES ('$class_name', '$function_name', '$error_message', '$date')";
$this->database_connection->query($sql_query) ;
}
?>
如果您打算在无法连接的同一个MySQL实例中记录错误,那么答案是:您可能不能这样做
当应用程序无法连接到数据库时,它将无法在其中保存错误消息
你可以做的是尝试再次连接几次(希望连接错误会消失),但不能保证你能建立连接。因此,依靠它是不安全的
替代方法是使用另一个数据库实例记录问题、将错误记录到文本文件中、发送电子邮件,或者简单地使用PHP函数记录错误
<?
$connlog = new mysqli(connection for logs)
$connection = new mysqli(database connection)
if($connection->connect_error) {
//insert to $connlog
?>
如果出现mysql连接错误,如何执行操作?
<?
$connlog = new mysqli(connection for logs)
$connection = new mysqli(database connection)
if($connection->connect_error) {
//insert to $connlog
?>