Php mysql整数问题

Php mysql整数问题,php,Php,我使用以下代码将数据添加到mysql数据库中 <?php $debdes = $_POST['debdes']; $debamt = $_POST['debamt']; $crdes = $_POST['crdes']; $cramt = $_POST['cramt']; $date = $_POST['date']; $cberror = "<h1>Data not Added</h1><br/><br/><h3&g

我使用以下代码将数据添加到mysql数据库中

<?php
$debdes  = $_POST['debdes'];
$debamt  = $_POST['debamt'];
$crdes   = $_POST['crdes'];
$cramt   = $_POST['cramt'];
$date    = $_POST['date'];
$cberror = "<h1>Data not Added</h1><br/><br/><h3>Please Follow The Instructions</h3>";

include_once ("db.php");



if (empty ($date)) die ("$cberror");

if (empty ($debamt) && empty ($debdes) && empty ($cramt) && empty ($cramt)) die ("$cberror");

if (!empty($debamt) && empty ($debdes))die ("$cberror");

if (!empty($debdes) && empty ($debamt)) die ("$cberror");


if (!empty($cramt) && empty ($crdes)) die ("$cberror");

if (!empty($crdes) && empty ($cramt)) die ("$cberror");

 $ucbook = "INSERT INTO cbook(debdes,debamt,crdes,cramt,date) VALUES ('$debdes','$debamt','$crdes','$cramt','$date');";

if(mysql_query("$ucbook"))

{
echo "<h3>One Record Updated Successfully with the following Details </h3><br/>";
echo "Date = $date <br/><br/>";
echo "Debt Amount =$debamt <br/><br/>";
echo "Debt Description = $debdes <br/><br/>";
echo "Credit Amount = $cramt <br/><br/>";
echo "Credit Description = $crdes <br/><br/>";

}
else 
{
echo "<be/><br/>The Following Error Occure While Updatig Data<br/><br/>";
echo mysql_error(); 
}

?>
虽然我没有在“debamt”中插入值,但我也正确填写了其他数据


这意味着
debamt
是空的。空不是正确的整数值

您知道,您也可以使用
|
逻辑运算符,这意味着或。因为这一行:

if (empty ($debamt) && empty ($debdes) && empty ($cramt) && empty ($cramt)) die ("$cberror");
…意味着即使其中一个值不是空的,if子句也不会激发。您可能想要的是:

if (empty ($debamt) || empty ($debdes) || empty ($cramt) || empty ($cramt)) die ("$cberror");
这样,如果其中一个字段为空,脚本将不会继续。这也使得很多后续检查变得无用


由于您当前的代码,
$debamt
完全有可能以空的形式通过。我想让你仔细考虑一下你的if子句,看看真正需要什么。

从你的代码来看,
$debamt
仍然有可能是空的,所以你的sql语句试图插入一个空参数。“”不是有效整数

空字符串不是有效整数。或者,您必须提供适当数量的字符串,您应该声明该列以允许null(并传递null而不是空字符串)


您还应该继续阅读。

此外,代码容易受到SQL注入攻击-字符串不会被转义。@Lucas Jones,是的,在OP掌握PHP语法的基本概念之前,我不想混淆OP的想法:)
if (empty ($debamt) || empty ($debdes) || empty ($cramt) || empty ($cramt)) die ("$cberror");