在功能上的mysqli查询 - PHP(Mysqli query in function - PH

2019-08-31 05:54发布

我在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 这里我有这个错误我的网站

Answer 1:

这是一个变量的作用域问题。 你需要传递$conngetSiteName()

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访问连接。



Answer 2:

  $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"];
 }


Answer 3:

你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());
}
?>


文章来源: Mysqli query in function - PHP
标签: php mysql mysqli