下面的代码不会回显任何内容,但应该与用户名匹配。连接到数据库后,选择查询不会输出任何东西
$connect= mysqli_connect('localhost','root','');
$user = "SELECT COUNT (*) FROM user_details WHERE user_name=$username";
$res = $connect->query($user);
echo $res;
我该如何解决这个问题?
下面的代码不会回显任何内容,但应该与用户名匹配。连接到数据库后,选择查询不会输出任何东西
$connect= mysqli_connect('localhost','root','');
$user = "SELECT COUNT (*) FROM user_details WHERE user_name=$username";
$res = $connect->query($user);
echo $res;
我该如何解决这个问题?
user_name的缺失报价:
$user = "SELECT COUNT (*) FROM user_details WHERE user_name='$username'";
$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
Ohhh lordie ....等待它。你为什么不指出真正的错误?而不是建议防止注射。这根本不解决问题。 – 2015-02-06 19:35:50
@ Fred-ii-固定。我还应该添加什么? – VeeeneX 2015-02-06 19:42:39
看看OP的问题下的意见。它有很多错误。我是一个人,不想碰Q. – 2015-02-06 19:43:14
你$资源最终成为布尔(你在查询的一些错误),这意味着你必须使用var_dump($res);
,而不是回声。
根据[PHP的文档](http://php.net/manual/en/mysqli.query.php):对于成功的SELECT,SHOW,DESCRIBE或EXPLAIN查询mysqli \ _query( )将返回一个mysqli \ _result对象 – 2015-02-06 19:40:13
@TheBlueDog在这里,我正在寻找“鸭子”。“Foalies”;-) – 2015-02-06 19:42:39
它将在失败时返回false,这就是为什么他没有看到任何东西。@ TheBlueDog它看起来像我是 – Keo 2015-02-06 19:44:24
放'$ username'在单引号 – 2015-02-06 19:31:28
Errrr ...是啊,如果你检查错误,它会告诉你。 'trigger_error('query failed',E_USER_ERROR)' – 2015-02-06 19:31:28
在'$ username'周围放置单引号 – 2015-02-06 19:32:01