当我使用
时 function __construct()
{
// open db
$this->db = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE);
if (!$this->db)
die(mysql_error());
$this->db->query("SET NAMES 'utf8';");
}
$result=$this->db->query("SELECT OrgNo, CompanyName FROM ematch WHERE CompanyName LIKE '%$word%';");
$num=$result->num_rows;
print $num;
$i=0;
while ($i < $num)
{
$OrgNo=mysql_result($result,$i,"OrgNo");
$CompanyName=mysql_result($result,$i,"CompanyName");
$i++;
print $OrgNo.' '.$CompanyName.'<br>';
}
我收到此错误: 警告:mysql_result():提供的参数不是有效的MySQL结果资源 没有任何结果。
答案 0 :(得分:8)
您可以将代码更改为:
$result = $this->db->query("SELECT OrgNo, CompanyName FROM ematch WHERE CompanyName LIKE '%$word%';");
while ($row = mysqli_fetch_array($result))
{
print $row['OrgNo'] .'<br />';
print $row['CompanyName'] .'<br />';
}
假设从$result
方法返回的query
是一个结果资源。
答案 1 :(得分:0)
您将要向我们展示您正在使用的数据库包装器/类,但我想猜测前进的方向:
$result = $this->db->query("SELECT OrgNo, CompanyName FROM ematch WHERE CompanyName LIKE '%$word%';");
while($row = mysqli_fetch_array($result)) {
print $row['OrgNo']." ".$row['CompanyName']."<br>";
}
当您使用自定义数据库包装器时,您最好逐个使用它来获取行,而不是使用mysqli_fetch_array();
答案 2 :(得分:0)
尝试从SQL语句中删除分号。
"SELECT OrgNo, CompanyName FROM ematch WHERE CompanyName LIKE '%$word%';"
应该是
"SELECT OrgNo, CompanyName FROM ematch WHERE CompanyName LIKE '%$word%'"