簡體   English   中英

如何使用php函數從數據庫中提取數據

[英]How do I pull data from the my database using a php function

這是我主頁上的內容:

$foo = new Foo();
$strQry=$foo->Client();
$user_data=mysql_fetch_object($user_res);
echo $user_data->clientid;

這是我的班級文件中的內容:

class Foo
{
function Client() 
{
$strQry = "SELECT clientid FROM users";
$user_res = mysql_query($strQry) or die("Unable to select, Error: ".mysql_error());
return $user_res;
}
}

我不太擅長在PHP中使用類和函數,因此出現此錯誤“無法選擇,錯誤:用戶'nobody'@'localhost'的訪問被拒絕(使用密碼:NO)“

任何幫助將不勝感激!

看來您甚至都沒有與數據庫建立連接。

這是一個很好的分步介紹,應該向您展示如何使用mysqli或pdo連接到mysql數據庫,這兩種方式都是與mysql進行通信的更安全的方法。

http://codular.com/php-mysqli

您的代碼有很多問題:

  • 您不應該使用mysql_*函數。 他們已棄用。 如果您只是學習將PHP與數據庫一起使用,請以正確的方式進行操作,並使用mysqliPDO
  • 您需要確保您實際上正在連接到數據庫。 也許您在這里,但未在此處顯示,但這顯然很關鍵。
  • 您打算從Client()方法調用中返回數據庫結果。 但是您沒有使用返回結果的變量。

這段代碼:

$strQry=$foo->Client();
$user_data=mysql_fetch_object($user_res);

應該:

$strQry=$foo->Client();
$user_data=mysql_fetch_object($strQry);

因為$strQry獲取結果集資源。

  • 您只調用一次mysql_fetch_object() 根據查詢,結果集中可以有任意數量的行。 如果需要所有這些,則需要遍歷結果集並在每一行上調用mysql_fetch_object()

也許是這樣的:

$user_data= array();
while($row = mysql_fetch_object($strQry)) {
    $user_data[] = $row;
}
  • 如果您要使用不推薦使用的mysql_*函數進行mysql_* ,則可能至少要養成將DB連接作為函數中的參數傳遞的習慣,以明確使用的是哪個DB連接。

因此,請執行以下操作:

mysql_query($strQry, $dbConn);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM