好吧,所以我正在努力將我的網站更新到mysqli,並且我對db連接的DB.php include有困難。將mysql連接到mysqli時的數據庫連接問題
所以我的db.php看起來像這樣。
<?php
$username="usern";
$server="server";
$password="pwd";
$database="db";
//MySQLi methods
$mysqli = new mysqli($server, $username, $password, $database) or trigger_error (mysqli_connect_errno().mysqli_connect_error());
?>
注意:SQL錯誤輸出是用於調試林意識到,輸出SQL和冗長的錯誤是不是好的做法;)
不管怎麼說,這樣的作品就好了。
將db.php文件更新爲mysqli im後,所有使用該頁面的頁面都存在問題。基本上,即使包含我在第21行\ display_functions.php中得到以下錯誤mysqli致命錯誤:調用成員函數query()對第21行中的r \ includes \ display_functions.php中的非對象調用
該文件的相關部分是:
function showConfig ($configID)
{
date_default_timezone_set('America/Denver');
require_once($_SERVER["DOCUMENT_ROOT"] . "/includes/DB.php");
$tbl_name="avr";
// Get information from DB for display
$configQuery="SELECT * FROM $tbl_name WHERE configID=$configID";
$configResult=$mysqli->query($configQuery);
<some more code>
}
當這是所有MySQL,它的工作,現在它不和Im真的不知道爲什麼。我認爲包含聲明應該引入所有文件中的所有內容,但使這個函數(和其他類似文件)工作的唯一方法是基本上將DB.php的內容放入函數中。這當然是一種可怕的做法。
此外,仍然在學習這一切,所以原諒這個無知的問題,但它只是成爲本週末時區變化的問題,我將如何設置默認時區功能,所以我不必把它放在一切?
因此然後放在require_once我只是需要把上任何網頁時調用這個函數和它會通過? 這是改變的東西還是我一直在做錯的事情?謝謝! – OCPik4chu 2013-03-13 21:29:48
是的,我有我的數據庫連接定義在一個單獨的文件中,我有require_onced。我只是將它傳遞給我需要的任何函數作爲參數。事實上,我有一些相當詳細的查詢,所以我有我的查詢在一個文件中,我的函數在另一個文件中稱爲query_builder(需要查詢文件),然後我需要query_builder文件到我需要運行它們的任何頁面。 – 2013-03-14 13:09:54
謝謝,我的意思是將sql連接變量傳遞給函數。在MySQL中,我不必這樣做,所以我想知道這是否是mysqli的改變,或者我之前可以做到,我只是繞過它奇怪的方式。我現在將所有插入內容都放在一個單獨的文件中,現在正在將我的查詢移動到單獨的文件中。這些作品很好並符合其目的,但有很多優化可以發生。再次感謝 :) – OCPik4chu 2013-03-14 14:10:58