gpt4 book ai didi

php - mysql数据存在代码不起作用

转载 作者:行者123 更新时间:2023-11-29 11:51:29 25 4
gpt4 key购买 nike

我正在尝试检查 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";
}

?>

我收到的错误是 -

Warning: mysql_query() expects parameter 2 to be resource, object given in C:\xampp\htdocs\myfiles\Easy123\master\login.php on line 8

Warning: mysql_num_rows() expects parameter 1 to be resource, null given in C:\xampp\htdocs\myfiles\Easy123\master\login.php on line 10 this username not used

最佳答案

首先,请确保您的数据库连接设置正确。您收到的错误清楚地表明您的 $conn 变量不是有效的资源。

此外,使用准备好的语句和参数化查询。不要在查询字符串中使用 PHP 变量,这根本不安全。使用 PDO 或 MySQLi 代替

  1. 使用PDO :

    $stmt = $pdo->prepare('SELECT easy123 FROM users WHERE email = :email');

    $stmt->execute(array('email' => $email));

    foreach ($stmt as $row) {
    // do something with $row
    }
  2. 使用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
    }

关于php - mysql数据存在代码不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33971046/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com