列值为空时拒绝插入

时间:2014-02-14 11:31:19

标签: php mysql insert

我的php代码将保存并向mysql插入日期:

来自输入文本框

$id2 = $_POST['id'];

随机数生成器 如何在5位数上始终生成它?

$random = rand();

插入代码:

$sql3="Insert into warranty(serial_no,a_id)
values ('$random','$id2')";
$result3=mysql_query($sql3);

当$ id2没有值时,如何拒绝插入?

4 个答案:

答案 0 :(得分:3)

如果给定变量具有值(manual page),只需使用empty()函数来确定。像这样:

if (!empty($id2))
{
   $sql3="Insert into warranty(serial_no,a_id) values ('$random','$id2')";
   $result3=mysql_query($sql3);
}

但是将$_POST值直接传递给SQL查询是一个巨大的*安全问题( SQL注入要明确),os至少使用mysql_real_escape_string()

$sql3="Insert into warranty(serial_no,a_id) values ('$random','" . mysql_real_escape_string($id2) . "')";

有关此内容的详情,请阅读How can I prevent SQL injection in PHP?

编辑:首先,我想念你的第二个问题,所以从评论中移动 - 生成5位数的随机数,使用简单:

$fiveDigitsRand = rand(10000, 99999);

答案 1 :(得分:1)

放下代码并删除现有代码。如果使用$ _POST方法获取值,则不需要$ id2变量。您可以通过以下代码直接进行。

$random = rand();

if(isset($_POST['id']))
{   
$sql3="Insert into warranty(serial_no,a_id)
values ('$random','".$_POST['id']."')";
$result3=mysql_query($sql3);
}
else
{
echo "No ID Found"; //you can do any action here.
}

答案 2 :(得分:0)

$ random = rand(10000,99999);

如果(!空(修整($ ID2)))

{
  $sql3="Insert into warranty(serial_no,a_id) values ('$random','$id2')";
 $result3=mysql_query($sql3);
}

答案 3 :(得分:-1)

if(isset($id2))
{
$sql3="Insert into warranty(serial_no,a_id)
values ('$random','$id2')";
$result3=mysql_query($sql3);
}