php - fatal error 调用成员函数 query()

标签 php mysql sql fatal-error

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

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

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

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

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

他们正在返回这个: “ fatal error :在第 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();
}

那么,为什么我会收到“ fatal error ”消息?我是否忽略或忘记了查询中的某些内容? 要温柔。 :-)

最佳答案

删除下面语句两边的单引号

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

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

简单地重写它就像..

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

关于php - fatal error 调用成员函数 query(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22411931/

相关文章:

php - 在cakephp中插入数据

php - WordPress,循环内的外部查询

mysql - MongoDB LIKE 与 Mysql LIKE

java - group by 子句上的 jdbc.SQLServerException

javascript - 创建搜索字段并动态更新 View

javascript - 单个页面中的多个 <HTML> 标签

mysql - 如何使用 CASE 语句在 MySQL 中进行计数

php - 即使此 php 或 sql 中没有报告错误,这也不会更新

php - SQLSTATE[42000] : Syntax error or access violation

mysql - 每个 COLUMN 值选择一行