检查数据库php中是否已存在值
如果我的数据库中已经存在电子邮件,我需要出错 我已经做了这个代码,但它不工作检查数据库php中是否已存在值,php,mysql,email,mysqli,newsletter,Php,Mysql,Email,Mysqli,Newsletter,如果我的数据库中已经存在电子邮件,我需要出错 我已经做了这个代码,但它不工作 `<?php` // CONNECT TO DATABASE $mysqli = new mysqli("database", "username", "password","database_name"); // creates $mail = $_POST['mail']; //from input $result = mysql_query("SELECT * FROM Newsmail WHERE
`<?php`
// CONNECT TO DATABASE
$mysqli = new mysqli("database", "username", "password","database_name"); // creates
$mail = $_POST['mail']; //from input
$result = mysql_query("SELECT * FROM Newsmail WHERE mail='" . $mail . "'");
if (mysql_num_rows($result) == 1)
{
echo "Error";
}
else {
//sql
$sql = "INSERT INTO `database_name`.`Newsmail` (`newsmail_id`, `mail`) VALUES (NULL, \'" . $_GET['mail'] . "\');";
//INSERT TO DATABASE
$insert = $mysqli->query($sql);
}
?>
`如果电子邮件是唯一键
,请尝试插入忽略
$mail = mysql_real_escape_string($mail);
$sql="INSERT IGNORE INTO Newsmail (email) VALUES ('$email')";
mysql_query($sql) or trigger_error(mysql_error()." ".$sql);
if (mysql_affected_rows()) {
echo 'registration successfully';
} else {
echo 'already exists';
}
代码中的以下错误
1) 您正在将mysql和mysqli混合到代码中
2) 您的查询已为sql注入打开
3) 您的代码中的$\u POST和$\u GET方法存在混乱
4) 没有错误检查方法来找出错误
您正在将mysql和mysqli
混合到您的代码中
<?php
// CONNECT TO DATABASE
$mysqli = new mysqli("database", "username", "password", "database_name"); // creates
$mail = $mysqli->real_escape_string($_POST['mail']);
$result = $mysqli->query("SELECT * FROM Newsmail WHERE mail='" . $mail . "'");
if ($mysqli->num_rows($result) == 1) {
echo "Error";
} else {
//sql
$sql = "INSERT INTO `database_name`.`Newsmail` (`newsmail_id`, `mail`) VALUES (NULL, '" . $mail . "')";
//INSERT TO DATABASE
$insert = $mysqli->query($sql);
}
?>