[英]How to iterate on search results from MySQL by PHP?
當我使用
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結果資源,並且沒有任何結果。
您可以將代碼更改為此:
$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 />';
}
假設從query
方法返回的$result
是結果資源。
您將必須向我們展示您正在使用的DB包裝器/類,但我想對前進的方向有所猜測:
$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();。
嘗試從SQL語句中刪除分號。
"SELECT OrgNo, CompanyName FROM ematch WHERE CompanyName LIKE '%$word%';"
應該是
"SELECT OrgNo, CompanyName FROM ematch WHERE CompanyName LIKE '%$word%'"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.