在mysql查询中使用php变量?卡住

时间:2015-12-10 23:27:38

标签: php mysql session

//check if the username which the user entered exists in the database
$usr = $_SESSION['username'];
$sql = "SELECT * FROM `login` WHERE username = '".$usr."'";
$query = mysqli_query($sql,$conn);

//if u found any row with that condition...
if ($query->num_rows != 0)
{
    //some code here.....
}

这是我的代码,它每次都返回$ query和$ query-> num_rows为NULL。 而且我确定我有' mehdijjz' ($ usr)在我的表中。 我认为问题在于$ sql代码的语法。 我被困...... :(你觉得怎么样?

1 个答案:

答案 0 :(得分:1)

看,这就是我讨厌程序 mysqli API的原因。如果你已经习惯了 mysql API,你就会错误地获取参数。

无论如何,你应该......

  1. 使用预准备语句注入查询值
  2. php.ini配置文件中启用正确的错误报告以进行开发

    error_reporting = E_ALL
    display_errors = On
    
  3. 您还可以简化检查现有记录的逻辑。例如

    // make mysqli throw exceptions
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    
    $stmt = $conn->prepare('SELECT 1 FROM `login` WHERE `username` = ?');
    $stmt->bind_param('s', $_SESSION['username']);
    $stmt->execute();
    if ($stmt->fetch()) {
        //some code here.....
    }