PHP/MySQL: 如果记录不存在则插入

4
$sql = "INSERT INTO toplist 
       (serverName, serverPassword, serverIp, serverPort, serverBanner,
        serverShortDescription, serverDescription)
       VALUES
       ('$_POST[serverName]', '$_POST[serverPassword]', '$_POST[serverIp]',
        '$_POST[serverPort]', '$_POST[serverBanner]', 
        '$_POST[serverShortDescription]', '$_POST[serverDescription]')";

if (!mysql_query($sql, $con)) {
    die('Error: ' . mysql_error());
}

echo "The server " . $_POST[serverName] . "," . $_POST[serverIp] 
    . " has been added.";

mysql_close($con);

如何使得当“serverIp”条目不存在时,它会被添加到数据库中,若已经存在,则不做任何操作。这个过程是否对大小写敏感?你是否可以通过以此方式进行绕过:bY tYpInG LiKe tHiS?


1
SQL注入攻击比大小写敏感性更令人担忧。 - OMG Ponies
1个回答

7
INSERT IGNORE...如果在列上有唯一约束条件,则不会插入。如果您希望忽略大小写,请在插入之前将字符串转换为小写。点击此处查看更多信息,这里也有一些有用的信息。

1
如果他正在使用MyISAM(这是非常常见和最有可能的情况),那么在这种情况下约束将不适用。+1 - Yes Barry
我在实现这个过程中遇到了困难。 - Hunt3r

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接