2017-04-10 48 views
1

在OpenCart中,如果給定正確的數據庫主機名,用戶名,密碼和數據庫名稱,如何運行mysqli查詢以完全獨立地從數據庫檢索一行信息PHP腳本?舉例來說,如果我有一個名爲「my_script.php」一個PHP文件,該文件包含以下內容:在不使用MVC的情況下從OpenCart中的數據庫檢索信息

$order_id = '123'; 

$mysqli = new mysqli('localhost', 'db_username', 'db_password', 'db_name'); 

$result = $mysqli->query("SELECT * FROM oc_order WHERE order_id = ".$order_id, MYSQLI_USE_RESULT); 

echo $result['firstname']; 

這裏的目標是簡單地從訂單#123呼應客戶的名字,但我得到一個「500內部服務器錯誤「,所以顯然有些東西不能正常通信。基本上,我試圖完全繞過OpenCart的M/V/C結構,並使用適當的憑據從數據庫中檢索信息。這甚至有可能嗎?

Opencart的是最新版本,2.3.0.2

+0

問題,如果你發表意見的mysqli代碼,只是迴應訂單ID ....或者如果你評論所有的代碼,只是做一個簡單的'回聲「你好Wold」;'你仍然得到錯誤500? – Hackerman

+0

不,我可以回顯訂單ID或其他任何內容,只有當$ result = $ mysqli-> query ...部件被取消註釋時,纔會收到錯誤消息。 當我有條件地迴應$ mysqli->錯誤時,我瀏覽到頁面「admin/my_script.php?order_id = 123」時得到的實際錯誤是「錯誤:命令不同步;您無法運行這個命令現在「 – geoff

+0

我有一個想法....而不是:$ mysqli->查詢(」選擇*從oc_order WHERE order_id =「。$ order_id,MYSQLI_USE_RESULT);'只需使用這個:'$ mysqli->查詢(「SELECT * FROM oc_order WHERE order_id =」。$ order_id);' – Hackerman

回答

0

終於它與下面的,我可以在任何地方作爲一個函數使用的工作:

$db = new mysqli('localhost', 'db_username', 'db_password', 'db_name'); 

if(mysqli_connect_errno()){ 
echo mysqli_connect_error(); 
} 

$getresult = $db->query("SELECT * FROM oc_order WHERE order_id = '".$order_id."'"); 
if($getresult){ 

    $result = $getresult->fetch_array(); 
    $getresult->close(); 

} else echo($db->error); 

// close the connection 
$db->close(); 

return($result);  
相關問題