Php表单提交检查

时间:2018-02-05 16:59:11

标签: php mysql

我有一个PHP代码,可以将数据添加到MySQL表中。我需要检查是否存在2条记录,然后继续添加它们。

这是我的代码,但从来没有其他声明有效。这是我的代码

if(isset($_POST['submit']))
{

$username=$_POST['username'];
$imerominia=$_POST['imerominia'];
$diarkia=$_POST['diarkia'];

$queryAQ = $db->query("SELECT username,imerominia FROM sdit WHERE $username 
= '$username' AND imerominia = '$imerominia'");
$wres = $queryAQ->results();

if(!empty($wres))
{
$query = $db->query("INSERT INTO sdit (username,imerominia,diarkia) VALUES('$username','$imerominia','$diarkia')");



    echo '<script language="javascript">';
    echo 'alert("Successfully Added"); location.href="account.php"';
    echo '</script>';
 } 
 else  
 {


echo '<script language="javascript">';
    echo 'alert("DATE ALLREADY EXISTS"); location.href="account.php"';
    echo '</script>';

}
}

2 个答案:

答案 0 :(得分:0)

您要比较的SELECT查询中存在一些逻辑错误

$username = '$username'

根据我的理解,这永远不会是true。这可能是!empty($wres)评估为true且始终属于false的原因之一。

因此,正确的SQL应该是

SELECT username,imerominia FROM sdit WHERE username = '$username' AND imerominia = '$imerominia'

但是,我宁愿坚持使用PreparedStatement,以避免此类错误和SQL注入。

答案 1 :(得分:-1)

if(!empty($ wres))总是评估为true,这就是else语句永远不会触发的原因

检查

$queryAQ->results(); 

如果为空则返回并更改您的if语句以查找