首页 > 解决方案 > PHP查询不会插入数据库

问题描述

下面的查询不会插入到数据库中,我已经在我的数据库上尝试过这个查询,所以我很确定查询正在工作。我还在下面添加了 dbcon.php。

<?php
require '../api/dbcon.php';

$stmt=$conn->prepare("INSERT INTO joborder (AirCondition,
                                           CarpentryMasonry,
                                           ElectricalWorks,
                                           Plumbing,
                                           Welding,
                                           Campus,
                                           priorityId, 
                                           RequestorName,
                                           UserJobDescription,
                                           SerialCode
                                           ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)" );

 $stmt->bind_param('ssssssssss',
                $airConditioning,
                $masonryCarpentry,
                $electrical,
                $plumbing,
                $welding,
                $campus,
                $priority,
                $requester,
                $userJobDescription,
                $serialCode);

$airConditioning = "check";
$masonryCarpentry = "check";
$electrical = "check";
$plumbing = "check";
$welding = "check";
$campus =  'NA';
$priority =  '1';
$requester = "m";
$userJobDescription ="test";
//create serial code
$serialCode= "na12321";

?>

dbcon.php

      <?php
     $dbhost = 'localhost';
     $dbuser = 'root';
     $dbpass = '';
     $dbtable = "table";
     $conn = new mysqli($dbhost, $dbuser, $dbpass, $dbtable);

     if(!$conn ){
        die('Could not connect: ' . mysqli_error());
     }
  ?>

标签: phpmysqli

解决方案


您正在使用错误的错误报告模式,因此需要仔细检查各处的错误,但您没有。

在第 4 行的 not-dbcon.php 上,您没有检查 $conn->prepare 是否成功,这样做,如果出现错误,它将返回 bool(false)。在第 16 行,您没有检查 $stmt->bind_param 是否成功,这样做,如果出现错误,它会返回 bool(false)。或者更好的是,不要这样做,只需$conn->report_mode = MYSQLI_REPORT_ALL;在创建对象后立即运行,将返回值错误报告转换为异常错误报告。

...而且最重要的是,您似乎忘记了运行 $stmt->execute(),它实际上执行了查询,这显然解释了为什么您没有插入任何内容。


推荐阅读