当前位置: 首页 > 知识库问答 >
问题:

如何显示MySQLi查询的错误?[副本]

牛凌
2023-03-14

我正在使用下面的脚本处理一个表单,将信息添加到我的网站。我遇到的问题是,当我提交表单时,没有任何内容被提交到数据库,并且没有错误。如何将错误报告添加到查询中?

<?php
if (isset($_POST['itemdescription'])) {$itemdescription = $_POST['itemdescription'];}else {$itemdescription = '';}
if (isset($_POST['itemnumber'])) {$itemnumber = $_POST['itemnumber'];}else {$itemnumber = '';}
if (isset($_POST['sellerid'])) {$sellerid = $_POST['sellerid'];}else {$sellerid = '';}
if (isset($_POST['purchasedate'])) {$purchasedatepre = $_POST['purchasedate'];$date = DateTime::createFromFormat("D F d, Y", $purchasedatepre);$purchasedate = date('Y-m-d',strtotime($purchasedatepre));}else {$purchasedatepre = ''; $purchasedate = '';}
if (isset($_POST['otherinfo'])) {$otherinfo = $_POST['otherinfo'];}else {$otherinfo = '';}
if (isset($_POST['numberofitems'])) {$numberofitems = $_POST['numberofitems'];}else {$numberofitems = '';}
if (isset($_POST['numberofitemsused'])) {$numberofitemsused = $_POST['numberofitemsused'];}else {$numberofitemsused = '';}
if (isset($_POST['isitdelivered'])) {$isitdelivered = $_POST['isitdelivered'];}else {$isitdelivered = '';}
if (isset($_POST['price'])) {$price = $_POST['price'];}else {$price = '';}

$itemdescription = str_replace("'", "", "$itemdescription");
$itemnumber = str_replace("'", "", "$itemnumber");
$sellerid = str_replace("'", "", "$sellerid");
$otherinfo = str_replace("'", "", "$otherinfo");

include("connectmysqli.php"); 

mysqli_query($db,"INSERT INTO stockdetails (`itemdescription`,`itemnumber`,`sellerid`,`purchasedate`,`otherinfo`,`numberofitems`,`isitdelivered`,`price`) VALUES ('$itemdescription','$itemnumber','$sellerid','$purchasedate','$otherinfo','$numberofitems','$numberofitemsused','$isitdelivered','$price')");

// header('Location: stockmanager.php?&key='.$key);
?>

共有2个答案

鄂育
2023-03-14
mysqli_error()

例如:

$sql = "Your SQL statement here";
$result = mysqli_query($conn, $sql) or trigger_error("Query Failed! SQL: $sql - Error: ".mysqli_error($conn), E_USER_ERROR);

触发器错误比死机好,因为您可以将其用于开发和生产,这是永久性的解决方案。

云卓
2023-03-14

只需添加或死亡(mysqli_error($db))在查询结束时,这将打印mysqli错误。

 mysqli_query($db,"INSERT INTO stockdetails (`itemdescription`,`itemnumber`,`sellerid`,`purchasedate`,`otherinfo`,`numberofitems`,`isitdelivered`,`price`) VALUES ('$itemdescription','$itemnumber','$sellerid','$purchasedate','$otherinfo','$numberofitems','$numberofitemsused','$isitdelivered','$price')") or die(mysqli_error($db));

作为旁注,我想说的是,您面临着mysql注入的风险,请检查这里如何防止PHP中的SQL注入?。你真的应该使用事先准备好的声明来避免任何风险。

 类似资料:
  • 问题内容: 这个问题已经在这里有了答案 : mysqli_fetch_assoc()期望参数/调用成员函数bind_param()错误。如何获取并修复实际的mysql错误? (1个答案) mysqli还是死了,它一定要死吗? (4个答案) 5年前关闭。 我正在使用以下脚本来处理将信息添加到我的网站的表单。我遇到的问题是,当我提交表单时,什么也没有提交到数据库,并且没有错误。如何将错误报告添加到查询

  • 问题内容: 我有以下代码: 如果只有一个结果(因为我可以回显)就很好了,但是如果有很多结果,如何使它循环遍历并打印每一行? 我敢肯定这确实很简单,但是我不确定我需要在Google中搜索什么。 我正在寻找与之等效的东西: 问题答案: 只需将其替换为or :) 几乎所有功能都有相应的功能。

  • 问题内容: 我有一个数据库表看起来像这样 当我运行此查询时,应该不显示任何行,因为不存在具有value的行: SELECT * FROM tableName WHERE ID =‘101foo2’ 我得到的结果具有相同的ID,但没有单词 如果我的查询是如何显示具有ID的行 问题答案: 您正在混合类型。 是一个整数(或数字)。您正在将其与字符串进行比较。因此,MySQL需要确定用于比较的类型。使用什

  • 当我们想要显示mysqli的错误时,我们使用以下示例: 如果出现错误,可能会这样说: 有没有办法显示这个错误来自哪个源文件?

  • 问题内容: 我已经检查了我的PHP ini文件()并已设置,并且错误报告为。我已经重新启动了Apache Web服务器。 我什至把这些行放在脚本的顶部,甚至没有捕获到简单的解析错误。例如,我用a声明变量,而我不关闭statement 。但是我所有的脚本都显示关于这些错误的空白页面,但是我想在浏览器输出中实际看到这些 错误 。 还剩下什么呢? 问题答案: 这总是对我有用: 但是,这不会使PHP显示解

  • 问题内容: 我正在尝试将MySQLi查询错误转换为“异常”,但不能-仅在无法连接数据库时抛出mysqli_sql_exception。 我使用了程序化的MySQLi函数嵌入到自定义包装器类中。 以前的代码: 问题: 查询失败是否正常,没有警告,也没有引发异常,所以我必须检查mysqli_query()是否返回false? 问题答案: 不久前,我设法解决了这个问题。正如在其他答案中指出的那样, 是告