2017-04-10 44 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);  
相关问题