你不需要傳遞mysqli作爲資源。使用它作爲一個對象,並調用它的查詢方法是這樣的:
$mysqli = new mysqli("localhost", "user", "pass", "db");
$sql = "SELECT OrgNo, CompanyName
FROM ematch
WHERE CompanyName LIKE '%A%'";
$result = $mysqli->query($sql);
while (($row=$result->fetch_assoc())!=false)
{
print $row['OrgNo'] .'<br />';
print $row['CompanyName'] .'<br />';
}
$導致這個例子是一個mysqli_resultset對象。有許多功能可以以各種格式爲對象或數字/關聯數組提供這些結果。檢查所有選項的PHP手冊。如果你需要經常使用這個程序,你可以從mysqli_result基派生類,使一個成員函數出你的代碼,如:
class MyResult extends mysqli_result
{
public function company_info($name=null)
{
if ($name==null)
{
while (($row=$result->fetch_assoc())!=false)
{
print $row['OrgNo'] .'<br />';
print $row['CompanyName'] .'<br />';
}
}
else
{
while (($row=$result->fetch_assoc())!=false)
{
$result->field_seek(1);
if($result->fetch_field==$name)
{
print $row['OrgNo'] .'<br />';
print $row['CompanyName'] .'<br />';
}
}
}
}
}
我在一些額外的代碼投擲給你的感覺更好mysqli函數。我的小例程將光標移動到集合中的第二個字段,並將其與函數的名稱參數進行比較。與mysqli_resultset類似,mysqli類具有許多不同的功能。不要將結果視爲資源。它是一個對象中的成員數據,並通過它的方法進行訪問。記住,加載你的對象數據,然後通過它的成員函數來處理它。如果你需要一個沒有預定義的函數,只需要派生並將其添加到類中。 只是不使用MySQL。它實際上已經過時,可能應該被棄用,以支持「改進」版本中真正的面向對象風格。我在mysqli代表改進。它利用了較新的PHP 5對象模型。當你習慣了面向對象的語法時,你不會想恢復到舊的過程風格。 訪問派生類如下:
$i_am_an_object = new MyResult; //Make The result a MyResult instead of just a mysqli_result
$i_am_an_object = $mysqli->query($sql); //populate the MyResult object with a base class function
$i_am_an_object->company_info(); //call your function to print fields from each record in the result\
$i_am_an_object->company_info("xyz Company"); //checks the second field in each record for the $name parameter and prints fields for any matching records.
哇!這個愚蠢的小'我'導致了兩個小時的問題!多謝,夥計! – 2010-11-11 13:17:54
NP。很高興有幫助! – 2010-11-11 13:19:33