0

我在数据库中有一个 PHP 代码和一个字段,这是一个唯一字段。如果人们填写表格并且$_POST['name']已经在数据库中,则会出现错误。

这就是我所拥有和想要的,但现在我想检查是否有错误,以便我可以在if/else语句中处理它。

这是我的代码:

$db = new database();
$sql = "INSERT INTO product_groepen (name) VALUES (".$_POST['name'].")";
$result = $db->executeQuery($sql);
if ($result)
{
    $db->executeQuery($sql);
    $page .= 'Yes';
} else {
    $page .= 'No';
}

错误:

警告:PDO::query() [pdo.query]: SQLSTATE[23000]: 完整性约束违规: 1062 第 26 行 /classes/database.class.php 中键 2 的重复条目 's'

它可以工作,当它不工作时,它会说“不”,但错误仍然存​​在。

4

1 回答 1

2

INSERT IGNORE如果它是重复的,请尝试忽略插入。此外,如果您仍在使用mysql_*,则存在mysql注入漏洞,请避开它​​:

$db = new database();
$sql = "INSERT IGNORE INTO product_groepen (name) VALUES ('".mysql_real_escape_string($_POST['name'])."')";
$result = $db->executeQuery($sql);
$affected = mysql_affected_rows($result); // you must have that function something like $db->affectedRows ?
if ($affected){
    $page .= 'Yes';
} else {
    $page .= 'No';
}

and make sure you don't execute the query twice

于 2012-09-04T12:17:02.433 回答