/ MY CODE /
if部分工作正常,但其他部分无效。 我甚至尝试过$ variable而不是直接回声,但仍然没有工作'否则'
更新
<?php
$db = new mysqli('localhost', 'root' ,'', 'timeline');
if(!$db) {
echo 'Could not connect to the database.';
} else {
if(isset($_POST['queryString'])) {
$queryString = $db->real_escape_string($_POST['queryString']);
if(strlen($queryString) >0) {
$query = $db->query("SELECT collegename FROM college WHERE collegename LIKE '$queryString%' LIMIT 10");
if(isset($query)) {
echo '<ul>';
while ($result = $query ->fetch_object()) {
echo '<li onClick="fill(\''.addslashes($result->collegename).'\');">'.$result->collegename.'</li>';
}
echo '</ul>';
} else {
echo 'create some'; // this part is not working
}
} else {
// do nothing
}
} else {
echo 'There should be no direct access to this script!';
}
}
?>
帮帮我..... 甚至在stackoverflow上读了很多像问题但没有真正的回报
答案 0 :(得分:0)
尝试
if($query_run = $db->query("SELECT collegename FROM college WHERE collegename LIKE '$queryString%' LIMIT 10")){
echo '<ul>';
while ($result = $query ->fetch_object()) {
echo '<li onClick="fill(\''.addslashes($result->collegename).'\');">'.$result->collegename.'</li>';
}
echo '</ul>';
} else {
echo 'create some';
}
答案 1 :(得分:0)
如果您使用mysqli::query,则if(isset($query))
语句将始终评估为true,因为$query
可能是FALSE
或mysqli_result对象。 isset
会为这两个值返回TRUE
,因此您的else
代码将永远不会被调用。
isset上的文档:
如果var存在并且其值不是NULL,则返回TRUE,否则返回FALSE。
改为使用if($query !== false)
。
更新
您似乎正在检查$query
以查看数据库中是否有点击。您需要检查结果中的number of rows,例如:
if ($query !== false && $query->num_rows > 0) {
// Query was ok and at least one row was returned
}
else {
// Will be reached if query was bad or there were no hits
}