首页 > 解决方案 > 如何解决 SQLSTATE[HY000]: General error: 2006 MySQL server has gone away?

问题描述

我正在尝试在数据库中插入记录,但出现错误

致命错误:未捕获的 PDOException:SQLSTATE[HY000]:一般错误:2006 MySQL 服务器已在 D:\xampp\htdocs\staff-activity\add_program.php:67 堆栈跟踪:#0 D:\xampp\htdocs\staff -activity\add_program.php(67): PDOStatement->execute() #1 {main} 在 D:\xampp\htdocs\staff-activity\add_program.php 第 67 行抛出

这是我的代码

if(isset($_POST['upload2'])){
        $sname = $_POST['sname'];
        $designation = $_POST['designation'];
        $department = $_POST['department'];
        $image = addslashes(file_get_contents( $_FILES['image']['tmp_name']));
        $dob = $_POST['dob'];
        $doji = $_POST['doji'];
        $experiance = $_POST['experiance'];
        $qualification = $_POST['qualification'];

        $email = $_POST['email'];
        $info = $_POST['info'];

        $submit_query = "INSERT INTO staff VALUES ( :sname, :designation, :info, :dob, :doji, :qualification, :experiance, :papers, :books,
         :memberships, :awards, :email, :departments, :images);";
        $stmt = $pdo->prepare($submit_query);
        $stmt->bindValue(':sname',$sname, PDO::PARAM_STR);
        $stmt->bindValue(':designation',$designation, PDO::PARAM_STR);
        $stmt->bindValue(':info',$info, PDO::PARAM_STR);
        $stmt->bindValue(':dob',$dob, PDO::PARAM_STR);
        $stmt->bindValue(':doji',$doji, PDO::PARAM_STR);
        $stmt->bindValue(':qualification',$qualification, PDO::PARAM_STR);

        $stmt->bindValue(':experiance',$experiance, PDO::PARAM_INT);

        $stmt->bindValue(':papers',(trim($_POST['papers']) == "") ? $_POST['papers'] : NULL, PDO::PARAM_INT);
        $stmt->bindValue(':books',(trim($_POST['books']) == "") ? $_POST['books'] : NULL, PDO::PARAM_INT);

        $stmt->bindValue(':memberships',(trim($_POST['memberships']) == "") ? $_POST['memberships'] : NULL, PDO::PARAM_STR);
        $stmt->bindValue(':awards',(trim($_POST['awards']) == "") ? $_POST['awards'] : NULL, PDO::PARAM_STR);
        $stmt->bindValue(':email',$email, PDO::PARAM_STR);
        $stmt->bindValue(':departments',$department, PDO::PARAM_STR);
        $stmt->bindValue(':images',$image, PDO::PARAM_STR);
        $stmt->execute();
}

关于如何解决它的任何想法?

我已经尝试通过执行数组传递值

谢谢。

标签: phpmysql

解决方案


推荐阅读