mysql数据存在代码无法正常工作

时间:2015-11-28 11:55:19

标签: php mysql

我正在尝试检查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中给出   此用户名未使用

2 个答案:

答案 0 :(得分:1)

首先,确保正确设置了数据库连接。您收到的错误清楚地表明您的$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
    }
    

答案 1 :(得分:0)

您的 $ query 似乎有误。试试这个:

$query = mysql_query("SELECT easy123 FROM users WHERE email='$email'", $conn);

确保正确定义 $ conn