我正在尝试检查mysql表中的数据是否存在但是脚本无法正常工作。如果我的代码提供,请找出我的错误在哪里。
<?php
//including the database files
include("../inc/settings.php");
$email = $_POST['email'];
$password = $_POST['password'];
$query = mysql_query("SELECT easy123 FROM users WHERE email=$email", $conn);
if (mysql_num_rows($query) != 0)
{
echo "Username already exists";
}
else
{
echo "this username not used";
}
?>
我得到的错误是 -
警告:mysql_query()期望参数2是资源,对象 在第8行的C:\ xampp \ htdocs \ myfiles \ Easy123 \ master \ login.php中给出
警告:mysql_num_rows()期望参数1为resource,null 在第10行的C:\ xampp \ htdocs \ myfiles \ Easy123 \ master \ login.php中给出 此用户名未使用
答案 0 :(得分:1)
首先,确保正确设置了数据库连接。您收到的错误清楚地表明您的$conn
变量不是有效资源。
此外,使用预准备语句和参数化查询。不要在查询字符串中使用PHP变量,它根本不安全。请改用PDO或MySQLi
使用PDO:
$stmt = $pdo->prepare('SELECT easy123 FROM users WHERE email = :email');
$stmt->execute(array('email' => $email));
foreach ($stmt as $row) {
// do something with $row
}
使用MySQLi:
$stmt = $dbConnection->prepare('SELECT easy123 FROM users WHERE email = ?');
$stmt->bind_param('s', $email);
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
// do something with $row
}
答案 1 :(得分:0)
您的 $ query 似乎有误。试试这个:
$query = mysql_query("SELECT easy123 FROM users WHERE email='$email'", $conn);
确保正确定义 $ conn 。