致命错误调用成员函数查询()

时间:2014-03-14 17:31:01

标签: php mysql sql fatal-error

我在这里看过一些以前的帖子,但他们真的没有解释我在寻找什么。也许有人可以指出我正确的方向。

我所做的只是一个简单的选择语句,适用于其他一些页面但不适用于此页面。

在我的页面顶部,我与我的db:include 'myDBconnection.php';的连接就像使用它的任何其他页面一样。

我正在用这些来告诉我我有什么错误:

ini_set('display_errors', 'On');
error_reporting(E_ALL);

他们正在归还: “致命错误:在第16行的/var/www/vhosts/mydomainname.com/httpdocs/somedirectory/index.php中的非对象上调用成员函数query()”

所以,这是我想要在页面上显示的简单选择语句:

<?php
//just a simple select statement
if($row = $con->query("SELECT * FROM ErrorCodeTable WHERE ErrorCodeID = 100"))//this is line 16 in my code
{
    $eCodeId = $row['ErrorCodeID'];
    $eCode = $row['ErrorCode'];

    echo $eCodeId." = ".$eCode;
}
?>

所以,我很难过。为什么告诉我这个?

为了清楚起见,这是我的数据库连接,我正在读取INI文件。

function getConnected()
{
    $file = "../myConnection.ini";
    if (!$settings = parse_ini_file($file, TRUE)) throw new exception('Unable to open ' . $file . '.');

    $host = $settings['connection']['default_host'];
    $user = $settings['connection']['default_user'];
    $paass = $settings['connection']['default_pw'];
    $dbName = $settings['connection']['default_db'];

    $con = 'mysqli_connect("'.$host.'", "'.$user.'", "'.$paass.'", "'.$dbName.'")'; 
    return $con;
}   

//MYSQLI CONNECTION
$con = getConnected();
//CONNECTION CHECK
if (mysqli_connect_errno()) {
  printf("Connect failed: %s\n", mysqli_connect_error());
  exit();
}

那么,为什么我会收到“致命错误”消息?我在查询中忽略或忘记了什么吗? 要温柔。 : - )

1 个答案:

答案 0 :(得分:2)

删除以下声明中的单引号

$con = 'mysqli_connect("'.$host.'", "'.$user.'", "'.$paass.'", "'.$dbName.'")';
       ^                                                                     ^ 

通过将其括在单引号中,$con的行为类似于字符串而不是连接资源。 mysqli_connect函数永远不会被执行。

只需将其重写为..

$con = mysqli_connect($host,$user,$paass,$dbName);