【问题标题】:Warning: mysqli_query() expects parameter 1 to be mysqli, null given [duplicate]警告:mysqli_query() 期望参数 1 为 mysqli,给定 null [重复]
【发布时间】:2013-09-26 19:20:54
【问题描述】:

我确定这是重复的,但我找不到答案。无论出于何种原因,我都无法查询我的数据库。

我只是想调用一个函数,但我得到了错误......

Warning: mysqli_query() expects parameter 1 to be mysqli, null given in ... on line 12

我的 dbConnect.php 文件有

$adConn = mysqli_connect("myHost","myUser","myPword","myDB");

我的functions.php文件有

require "dbConnect.php";

// Check connection
if (mysqli_connect_errno($adConn))
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

//-------------------------------------------------//
//   Gets total number of games for a given week   //
//-------------------------------------------------//
function GetGamesCount($wID){
    $sql = "SELECT * FROM schedule WHERE weekID=$wID";

    $gamesRS = mysqli_query($adConn, $sql);
    $games = mysqli_fetch_array($gamesRS);


}

我没有从连接检查中得到任何错误,我也尝试将它放在函数中。我知道我可以使用 mysqli_num_rows 函数,我会的。我只需要弄清楚为什么它不会查询数据库。我曾尝试使用具有相同问题的其他功能进行查询。但是,如果我在页面内查询或使用单独文件中的 ajax,则没有问题。

我只是不明白我错过了什么。非常感谢任何帮助。

【问题讨论】:

标签: php function mysqli


【解决方案1】:

因为$adConn 是在函数之外声明的,不在作用域内。这意味着您无法在函数内部访问它。要访问它,您需要将它作为函数的参数传递。

 function GetGamesCount($wID, $adConn){

【讨论】:

  • 非常感谢约翰!那行得通。我感觉它与范围有关,但我还在学习 PHP 不知道该去哪里找。
【解决方案2】:

$adConn 在全局范围内,您无法从函数中访问它,如果您将$adConn 更改为$GLOBALS['adConn'],它应该可以工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多