我在这里看过一些以前的帖子,但它们确实没有解释我正在寻找的内容。也许有人可以指出我正确的方向。
我所做的只是一个简单的选择语句,该语句适用于其他一些页面,但不适用于此页面。
在我的页面顶部,我有到我的数据库的连接: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/