2012-10-24 78 views
0

我試圖讓一個函數來工作(極新BTW功能),這是我,但是當我落實到我的網頁它不會把任何結果。有人能看出這有什麼不對嗎?創建函數關閉多個SQL數據庫

public function get_character() { 
     $con=mysql_connect("****","****","****"); 
     mysql_select_db("accounts", $con); 
     $id = mysql_query("SELECT id FROM account WHERE username = '" . $username . "'"); 
     global $characterdb; 
     $info = $characterdb->get_row("SELECT `name` FROM `characters` WHERE `account` = '" . $characterdb->escape($id) . "' AND `active`=1"); 
     if(is_object($info)) 
      return $info->character; 
     else 
      return ''; 
    } 
+0

添加一些基本的調試,你會看到錯誤。 – 2012-10-24 08:41:58

回答

1

您的$id是一個Mysql結果,而不是您可以在另一個查詢中使用的整數。 首先,您需要從該行獲取行和ID。

另外:考慮將$ characterdb作爲參數傳遞給函數,或者將它作爲類變量。

通過全球導入是最不吸引人的選擇。 ;)

+0

可能在$ characterdb-> escape($ id)中,escape是一個函數,他試圖使用mysql_fetch_array獲取id並返回它。 –

+0

這將是這樣一個功能的奇怪的名字:) –

+0

我加了一個結果,並設置基於關閉的'code' $行[「名稱」]'code'一個變量,它解決了我的問題。謝謝。 :) –

0

你已經在你的查詢錯過了現場。見下文。它不是名稱,而應該是選擇查詢中的字符。

$info = $characterdb->get_row("SELECT `character` FROM `characters` WHERE `account` = '" . $characterdb->escape($id) . "' AND `active`=1"); 
    if(is_object($info)) 
     return $info->character; 
    else 
     return '';