我有一个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>';
}
}
答案 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语句以查找