函数中的Mysqli查询 - PHP

Jor*_*nur 2 php mysql mysqli

我在functions.php中有一个函数列表.我正在从Mysql升级到Mysqli因为我刚刚学习Mysql现在已经折旧了.

我在顶级levelconnect.php文件中声明了我的连接.需要的第一个文件.

无论如何回到这一点我的所有函数都使用mysql_query("QUERY")并且总是工作正常.现在我将所有这些改为:

$con->query("QUERY") // ($con is my connection variable)
Run Code Online (Sandbox Code Playgroud)

现在我收到致命错误:在第241行的C:\ wamp\www\PHP\functions.php中的非对象上调用成员函数query().



所以我不明白为什么我可以查询我是否在我的整个文件中声明我的变量.它应该随处可见,我只是不确定.这使我的网站暂停,直到我能解决这个问题.这是来自functions.php的示例函数

function getSiteName()
{
    $row = $con->query("SELECT * FROM siteinfo")->fetch_array();
    return $row["siteName"];
}
Run Code Online (Sandbox Code Playgroud)

我的联系:

global $con ;
$con = new mysqli("localhost", "itunes89", "XXXX","projectanvil") or die("Sorry, were having server connection issues. Please try again later.");
Run Code Online (Sandbox Code Playgroud)



多谢你们!:D 我的网站,我有这个错误

MrC*_*ode 10

这是一个可变范围问题.你需要传递$conngetSiteName():

function getSiteName($con) {
    $row = $con->query("SELECT * FROM siteinfo")->fetch_array();
    return $row["siteName"];
}

$name = getSiteName($con);
Run Code Online (Sandbox Code Playgroud)

或者使用带构造函数注入的类:

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();
Run Code Online (Sandbox Code Playgroud)

在整个课程中,您可以使用它$this->con来访问连接.