代码移动到函数时无法连接到数据库

时间:2015-08-31 04:18:00

标签: php mysql mysqli

我想创建一个计算数据库中用户总数的函数。

$count = "SELECT COUNT(userid) FROM user ";
$run=mysqli_query($con,$count);
$result = mysqli_fetch_array($run);
echo $result[0];

上面的代码运行正常。但是,当我把它放在一个函数中时:

<?php
include("db.php");

function popo()
{
    $count = "SELECT COUNT(userid) FROM user ";
    $run=mysqli_query($con,$count);
    $result = mysqli_fetch_array($run);
    echo $result[0];
}
?>

<?php
popo();
?>

出现以下错误:

  

警告:mysqli_query()要求参数1为mysqli,在第5行的C:\ xampp \ htdocs \ admin \ includes \ function.php中给出null

     

警告:mysqli_fetch_array()期望参数1为mysqli_result,在第6行的C:\ xampp \ htdocs \ admin \ includes \ function.php中给出null

2 个答案:

答案 0 :(得分:1)

变量$con不在函数popo()的范围内。你可以做的是使用global命令:

function popo()
{
    global $con;
    // ...

请注意,使用像这样的全局变量在编程中是不好的做法。

答案 1 :(得分:0)

$con在函数内部不存在,只在它之外。

你可以将$con传递给这样的函数:

function popo($con)
...
popo($con);

或者你可以让它全球化(但这不是很好的风格):

function popo() {
  global $con;
  ...