【问题标题】:mysqli INSERT query not working no errorsmysqli INSERT 查询不工作没有错误
【发布时间】:2016-09-01 18:33:20
【问题描述】:

我无法弄清楚为什么我的 php 脚本有时无法正常工作,但在从我的数据库表中删除所有数据后却可以正常工作

<?php

$con = mysqli_connect("localhost","root","","db_csbn");

if(mysqli_connect_errno())
{
    echo "MySQLi Connection was not established: " . mysqli_connect_error();
}

?>

...

<?php

include "connect.php";

$tor = (isset($_POST['tor']) ? "1" : "0");
$frm = (isset($_POST['frm']) ? "1" : "0");
$dp = (isset($_POST['dp']) ? "1" : "0");
$gm = (isset($_POST['gm']) ? "1" : "0");
$hd = (isset($_POST['hd']) ? "1" : "0");
$cr = (isset($_POST['cr'])? "1" : "0");
$ch = (isset($_POST['ch']) ? "1" : "0");
$snumber = $_POST['snumber'];


$documents = $tor.$frm.$dp.$gm.$hd.$cr.$ch;
echo $documents;
$date = date("Y-m-d");
if($tor || $frm || $dp || $gm || $hd || $cr || $ch)
{
    $id = str_replace("-","",$date).$snumber;


    $sql = "INSERT INTO `tbl_requests` (`id`, `dr`, `snumber`, `date`) VALUES('".$id."', '".$documents."', '".$snumber."', '".$date."');";

    if( mysqli_query($con, $sql))
    {
        echo"<script>alert(Request id (Please Save):\n $id);</script>";
    }
}
}
?>

运行此脚本后我看不到任何错误,但我的表中没有添加任何数据。

【问题讨论】:

  • }query 之后执行else 并检查错误。 php.net/manual/en/mysqli.error.php
  • 我添加了 if( mysqli_query($con, $sql)) { echo""; } else { echo ""; } 甚至警告框都没有出现
  • 好吧 asd 有点没用,但它给了你什么?
  • 如果在从表中删除所有数据后它仍然有效,那么最可能的原因是您尝试插入的后续数据违反了唯一约束。我首先会怀疑id。您是否每次都为snumber 使用相同的值?按照建议启用错误报告,它不会是这样的猜谜游戏。
  • 问题是,您构建id 的方式不会使其唯一,并且它必须是唯一的才能插入新行。有什么理由需要这样的 id 而不是普通的自动增量整数?如果您需要知道插入行的时间,可以在另一列中添加时间戳。

标签: php mysql mysqli sql-insert


【解决方案1】:

首先你的}太多了

query 之后做elseprintf("Error: %s\n", mysqli_error($link));

【讨论】:

  • 我添加了 echo mysqli_error($con); 但它仍然没有给我错误
  • 那还有更严重的错误,看apache日志和php错误日志
猜你喜欢
  • 2011-10-12
  • 1970-01-01
  • 2018-05-16
  • 1970-01-01
  • 2022-08-06
  • 2014-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多