如何检查PHP中的MySQL数据库中是否存在值?

Dav*_*ser 2 php mysql database

我是PHP新手,但我喜欢创建一个脚本来检查我的MySQL数据库中是否有电子邮件,数据库名称是"Fily_Registrations",表是"用户"还是调用了值"email".所以基本上如果"hi@all.com"我的数据库中存在电子邮件并且我调用php脚本就像"http://path/to/php.php?email=hi@all.com"它应该回显"YES"如果它不存在它应该回应"NO".

这就是我现在的票价,但总是回应"不":

<?php

$email = $_GET["email"];
$DataBase = "Fily_Registrations";
mysql_connect("server", "username", "password") or die(mysql_error());
mysql_select_db($DataBase) or die(mysql_error());
$string = sprintf("SELECT '$DataBase' FROM users WHERE email = '$email'");
$query = msql_query($string);
if($query == false) {
     echo("No");
} else {
    echo("Yes");
}
?>
Run Code Online (Sandbox Code Playgroud)

有谁知道如何解决这一问题?

小智 5

如果数据库是Fily_Registrations,那么查询是错误的.试试这个:

$email = mysql_real_escape($_GET["email"]);
$DataBase = "Fily_Registrations";
mysql_connect("server", "username", "password") or die(mysql_error());
mysql_select_db($DataBase) or die(mysql_error());
$query = "SELECT * FROM users WHERE email = '{$email}'";
$result = mysql_query($query);
echo (mysql_num_rows($result) == 0) ? 'NO' : 'YES';
Run Code Online (Sandbox Code Playgroud)

如果查询不正确,mysql_query将返回false.首先阅读http://pl1.php.net/mysql_query并考虑使用PDO(http://pl1.php.net/pdo)而不是普通的mysql_query.