我在这里看过一些以前的帖子,但他们真的没有解释我在寻找什么。也许有人可以指出我正确的方向。
我所做的只是一个简单的选择语句,适用于其他一些页面但不适用于此页面。
在我的页面顶部,我与我的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();
}
那么,为什么我会收到“致命错误”消息?我在查询中忽略或忘记了什么吗? 要温柔。 : - )
答案 0 :(得分:2)
删除以下声明中的单引号
$con = 'mysqli_connect("'.$host.'", "'.$user.'", "'.$paass.'", "'.$dbName.'")';
^ ^
通过将其括在单引号中,$con
的行为类似于字符串而不是连接资源。 mysqli_connect
函数永远不会被执行。
只需将其重写为..
$con = mysqli_connect($host,$user,$paass,$dbName);