我在functions.php的功能列表。 我从MySQL升级到mysqli的 ,因为我刚开始学习MySQL是现在贬值。
我声明我在顶部levelconnect.php文件连接。 所需的第一个文件。
反正回点我所有的函数使用的mysql_query(“查询”),并始终正常工作。 现在我改变了所有的他们:
$con->query("QUERY") // ($con is my connection variable)
现在,我得到一个致命错误:调用一个成员函数查询()一个非对象在C对:上线241 \ WAMP \ WWW \ PHP \的functions.php。
所以,我不知道为什么,如果我说出我的变量在我的整个文件我可以查询。 它应该是可访问的无处不在,我只是不知道。 这已经把我的网站搁置,直到我能解决这个问题。 下面是从一个的functions.php样本功能
function getSiteName()
{
$row = $con->query("SELECT * FROM siteinfo")->fetch_array();
return $row["siteName"];
}
我的连接:
global $con ;
$con = new mysqli("localhost", "itunes89", "XXXX","projectanvil") or die("Sorry, were having server connection issues. Please try again later.");
多谢你们! :d 这里我有这个错误我的网站
这是一个变量的作用域问题。 你需要传递$conn
到getSiteName()
function getSiteName($con) {
$row = $con->query("SELECT * FROM siteinfo")->fetch_array();
return $row["siteName"];
}
$name = getSiteName($con);
或者使用与构造器注入类:
class MyThing
{
protected $con;
public function __construct($con) {
$this->con = $con;
}
public function getSiteName() {
$row = $this->con->query("SELECT * FROM siteinfo")->fetch_array();
return $row["siteName"];
}
}
$obj = new MyThing($con);
$name = $obj->getSiteName();
纵观类,你可以使用$this->con
访问连接。
$con = new mysqli(
"localhost",
"itunes89",
"XXXX",
"projectanvil"
);
不会返回失败null或假的。
您应该检查的价值
mysqli_connect_errno()
连接后,验证$ con是有效的服务器连接。
既然你做$ CON全球,使getSiteName功能访问它,你应该写:
function getSiteName(){
global $con;
$row = $con->query("SELECT * FROM siteinfo")->fetch_array();
return $row["siteName"];
}
你defind为$ CON对象
<?php
// connect to the server
$conn = new mysqli('localhost', 'root', 'pass', 'dbname');
// check connection
if (mysqli_connect_errno()) {
exit('Connect failed: '. mysqli_connect_error());
}
?>