MySQL表达式无效?

时间:2014-04-28 16:27:17

标签: php mysql

我有一个以下代码,它应该得到一个带有标识符(name)的行:

 <?php
        include "constants.php";
        $namee=$_POST['name'];
        $passw=$_POST['password'];
        echo $namee."<br>";
        echo $passw."<br>";
        $databaseconnection=mysqli_connect("",dbuser,userpassword,"db");
        $res=mysqli_query($databaseconnection,"SELECT Identifier,Password FROM accounts WHERE Identifier=$namee");
        while($row=mysqli_fetch_array($res))
        {
            print_r($row);
        }

    ?>

我得到的错误是&#34;警告:mysqli_fetch_array()要求参数1为mysqli_result,第15行和第34行的C:\ Xampp \ htdocs \ tests \ loginlogic.php中给出布尔值;这意味着没有这样的记录。我认为"SELECT Identifier,Password FROM accounts WHERE Identifier=$namee"是错误的。以什么方式?

2 个答案:

答案 0 :(得分:2)

您需要$namee附近的引号

WHERE Identifier = '$namee'

但您确实需要首先转义用户输入或使用准备语句,以防止SQL注入。

答案 1 :(得分:-1)

如果替换

怎么办?
$databaseconnection=mysqli_connect("",dbuser,userpassword,"db");

$databaseconnection=mysqli_connect("YOUR HOST NAME",dbuser,userpassword,"db");