连接到数据库后,选择查询不输出任何内容

时间:2015-02-06 19:30:52

标签: php mysqli

以下代码不会回显任何内容,但应该与用户名匹配。

$connect= mysqli_connect('localhost','root','');
$user = "SELECT COUNT (*) FROM user_details WHERE user_name=$username";
$res = $connect->query($user);
echo $res;

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

$mysqli = new mysqli('localhost', 'root', 'password', 'database');

if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT COUNT * user_details WHERE user_name=?";

$stmt = $mysqli->stmt_init();

if(!$stmt->prepare($query)){
    print "Failed to prepare statement\n";
}else{

    $stmt->bind_param("s", $username);

    $stmt->execute();
    $result = $stmt->get_result();
    var_dump($result);
}

$stmt->close();

$mysqli->close();

不要忘记选择数据库。 代码尚未经过测试。 使用了数据绑定,您可以在此处找到更多相关信息:Mysql injection

答案 1 :(得分:1)

你的$ res最终为布尔值(你在查询中有一些错误),这意味着你必须使用var_dump($res);而不是echo。

答案 2 :(得分:1)

缺少user_name的引号:

$user = "SELECT COUNT (*) FROM user_details WHERE user_name='$username'";