每次运行代码时都会出现此错误,我尝试通过其他类似的线程,但它没有帮助。我是新手
$count=3;
$db = new mysqli ('localhost', 'root', '', 'test');
$selectSQL='SELECT * FROM coll_mark WHERE univ="'.$_POST['univ'].'" AND '.$brachTxt.'<="'.$_POST['perc'].'"AND '.$brachTxt.'!="" ORDER BY '.$brachTxt.' DESC LIMIT '.$count;
$queryset='';
$queryset=mysql_query($selectSQL);
while($row = mysql_fetch_assoc($queryset))
{
echo('<tr><td id="ColgNames">'.$row['name'].'</td><td align="center">'.$row[$brachTxt].'</td></tr>');
}
我还检查了查询结构是否正确,但查询工作正常。
答案 0 :(得分:4)
您的查询很可能失败,因此mysql_query($selectSQL);
返回false。一个简单的如果要解决这个问题
$queryset=mysql_query($selectSQL);
if ($queryset) {
while($row = mysql_fetch_assoc($queryset)) {
//code
}
}
您的查询容易受到SQL注入攻击!另请注意,mysql_*
函数为officially deprecated,因此不应在新代码中使用。您可以使用PDO或MySQLi。有关详细信息,请参阅this answer on SO。
答案 1 :(得分:3)
尝试这样,
$count=3;
$db=mysql_connect('localhost','root','');
if(!$db) {
die('Could not connect: '.mysql_error());
}
$connection_string=mysql_select_db('test',$db);
$selectSQL='SELECT * FROM coll_mark WHERE univ="'.$_POST['univ'].'" AND '.$brachTxt.'<="'.$_POST['perc'].'"AND '.$brachTxt.'!="" ORDER BY '.$brachTxt.' DESC LIMIT '.$count;
$queryset=mysql_query($selectSQL);
$num=mysql_num_rows($queryset);
if(0==$num) {
echo "No record";
exit;
} else {
while($row=mysql_fetch_assoc($queryset)) {
echo('<tr><td id="ColgNames">'.$row['name'].'</td><td align="center">'.$row[$brachTxt].'</td></tr>');
}
}
答案 2 :(得分:1)
您正在声明与数据库的mysqli
连接,然后使用mysql
个函数。
请改为尝试:
$db = mysql_connect('localhost', 'root', '', 'test');
请注意mysql
functions are deprecated as of PHP 5.5.0, and will be removed in the future.
答案 3 :(得分:1)
函数 mysql_query 在错误时返回失败。检查您的SQL查询语法。
btw,语法错误在这里......之后!=运算符......
...$brachTxt."!='" ORDER BY ".$brachTxt."...