我的php代码将保存并向mysql插入日期:
来自输入文本框
$id2 = $_POST['id'];
随机数生成器 如何在5位数上始终生成它?
$random = rand();
插入代码:
$sql3="Insert into warranty(serial_no,a_id)
values ('$random','$id2')";
$result3=mysql_query($sql3);
当$ id2没有值时,如何拒绝插入?
答案 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);
}