我正在尝试在本地主机上查询我的 MySQL 数据库。我想要做的就是查看用户的 $name 是否等于我的 db 中 'userName' 列中的任何值。如果是就说是,否则就说不是。
我的代码:
try
{
$conn = new PDO("mysql:host=$servername;dbname=datab", $username, $pass);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//echo "Connected successfully";
$sql = 'SELECT passWord FROM datab WHERE userName = '$name'';
$res = $conn->query($sql)
if($res>0)
{
echo "user found";
}
else
{
echo "not in db";
}
}
最佳答案
如果您使用 PDO,那么使用准备好的语句也是明智之举,这样可以避免潜在的注入(inject)或不需要的错误。
引用代码:
try
{
$conn = new PDO("mysql:host=$servername;dbname=datab", $username, $pass);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//echo "Connected successfully";
$sql = 'SELECT passWord FROM datab WHERE userName = :name';
$stmt = $conn->prepare($sql); // Prepare
$stmt->bindValue(':name', $name);
$stmt->execute();
$result = $stmt->fetchAll();
if(count($result))
{
echo 'User found';
}
else
{
echo 'User not found';
}
}
catch(PDOException $e)
{
echo $e->getMessage();
}
关于php SQL 选择查询不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30018927/