0

我制作了一个简单的 mysqli 函数包装器,用于连接。当我尝试使用它时,我得到一个致命错误

"Fatal error: Call to a member function query() on a non-object in /home/cgateams/public_html/home.cga/test.php on line 5"

Line 5: $res = $dblink->query("select * from test");

测试.php

include('includes/db/config.php');

$dblink = db_connect();
$res = $dblink->query("select * from test");
while ($res = $row) {
    echo $row['test'];
}

配置文件

//Database server
$host = 'localhost';
$dbname = 'dbname';  //sanitized data
$dbuser = 'dbuser';
$dbpass = 'dbpass';

// db connect to nm database
function db_connect()
{
    global $host, $dbuser, $dbpass, $dbname;

   $dbconnect = new mysqli($host, $dbuser, $dbpass, $dbname);

   if (!dbconnect)
     throw new Exception('Could not connect to CGA database currently');
   else
   return $dbonnect; 
}
4

3 回答 3

4

你少了一个美元。它应该是:

if (!$dbconnect)

然后在返回值的更下方,你有一个错字:

return $dbconnect;

你得到的错误是因为你的 mysqli 对象没有被返回(因为拼写错误)。

另外,看看在 mysqli 中使用准备好的语句 - 它们比内联查询非常强大且安全得多,尤其是当您进入传递参数时。

于 2013-05-13T00:36:01.673 回答
3

在您的db_connect()函数中,您正在返回$dbonnect. 应该是$dbconnect

于 2013-05-13T00:35:48.133 回答
0

config.php 中有错误:if (!dbconnect)if (!$dbconnect)

于 2013-05-13T00:37:09.763 回答