我使用Easyphp進行默認設置的開發。我的所有代碼都可以在本地Easyphp數據庫上正常工作。但是當我在使用linux服務器的webhosting上上傳它時,所有帶對象的函數突然間都在迴應OOP錯誤。這是exp。正常功能我正常寫道:Easyphp工作,linux服務器返回調用非對象的成員函數
function user_data($user_id){
global $db;
$data = array();
$user_id = (int)$user_id;
$func_num_args = func_num_args();
$func_get_args = func_get_args();
if($func_num_args > 1) {
unset($func_get_args[0]);
$fields = '`' . implode('`, `', $func_get_args) . '`';
$query = "SELECT $fields FROM users WHERE user_id = '$user_id'";
$result = $db->query($query);
$data = $result->fetch_assoc();
return $data;
$result->free();
$data->free();
}
}
一切工作正常我的本地PHP服務器上。我上傳它與Linux服務器我得到的虛擬主機後像行「調用一個成員函數FETCH_ASSOC()在非對象錯誤」:
$data = $result->fetch_assoc();
誰能告訴我什麼,我寫錯了嗎?爲的EasyPHP
DB連接:對於Linux服務器
$db = new mysqli("$DB_HOST","$DB_USER","$DB_PASSWORD","$DB_NAME");
DB連接:
$socket = "/tmp/mysql51.sock";
$db = new mysqli("$DB_HOST","$DB_USER","$DB_PASSWORD","$DB_NAME", 0, $socket);
謝謝
編輯 - 解決方案
我找到了錯誤的原因。它是在PHP代碼中的SQL查詢中寫入變量。查詢應該是這樣的:
$ query =「SELECT $ fields FROM users WHERE user_id ='」。$ user_id。「'」;
錯誤的原因仍然是我的m。。它可以是平臺或PHP版本。
嗨mcorne - thx的評論。我試過你的建議,mysqli extenstion正在工作。我發現一個解決方案 - 問題是在SQL查詢PHP變量分配。我用解決方案編輯了問題。仍然不知道它是如何在一個平臺上工作的,而不是。 –