【发布时间】: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