我希望有人能帮助我。
我对PHP完全陌生,我发现我的SELECT
查询和/或IF
语句没有从数据库中检索任何结果。
这段代码的目的是从数据库中检索一个css皮肤,该皮肤可以应用于我网站的每个页面。
这是代码:
$dbc - mysqli_connect($servername, $username, $password, $databasename) or die ('Error connecting to MYSQL server');
$skin = $_POST['skin'];
$query = "SELECT skin FROM skins WHERE id = '".$_SESSION['userid']."'";
$result = mysqli_query($dbc, $query) or die ('Error quering database');
if ($result) {
if ($skin=='blue') {
echo "<link rel='stylesheet' type='text/css' href='blue.css' />";
}
else if ($skin == "pink1") {
echo "<link rel='stylesheet' type='text/css' href='pink1.css' />";
}
else {
echo 'You do not have a skin preference';
}
}
当代码运行时,它会返回You do not have a skin preference
。
我的想法是它没有正确地连接到数据库/表;因此,它不会检索任何结果。
我知道它应该从数据库中获取$skin=='blue'
。
如有任何帮助或建议,我们将不胜感激。
谢谢。
mysqli_query()
只有在出现错误时才会返回false,从而触发or die()
子句。
不返回数据的查询是NOT错误。它仍然是一个有效的结果集,只是碰巧是空的。您需要检查mysqli_num_rows()
,看看是否返回了0行或非零行。
例如。
if (mysqli_num_rows($result) == 0) {
... there is no preference set
} else {
... there's at least one skin preference
}