将代码转换为函数,但它不起作用

Cul*_*lly 3 php mysql function

我使用此代码来计算一个人在数据库中出现的次数(跨15列).

$name = "Clint Irwin";
$query = mysqli_query($con, "
    SELECT * FROM `players` 
    WHERE MATCH (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15)
    AGAINST ('$name' IN BOOLEAN MODE) 
    AND rank <= 1000");
$result = mysqli_num_rows($query);
echo $name.' '.$result;
Run Code Online (Sandbox Code Playgroud)

这有效...但是,我想让它变得更容易,所以我可以在很多不同的名字上运行...所以我尝试了这个......

function gw($name) 
{   
    $query = mysqli_query($con, "
        SELECT * FROM `players`
        WHERE MATCH (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15) 
        AGAINST ('$name' IN BOOLEAN MODE)
        AND rank <= 1000");
    $result = mysqli_num_rows($query);
    echo $name.' '.$result;
}

//run it for certain person names,
gw("Clint Irwin");
Run Code Online (Sandbox Code Playgroud)

它不起作用.我刚收到以下错误消息

Warning: mysqli_query() expects parameter 1 to be mysqli, null given in /Applications/XAMPP/xamppfiles/htdocs/test.com/index.php on line 19

Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, null given in /Applications/XAMPP/xamppfiles/htdocs/test.com/index.php on line 21
Clint Irwin
Run Code Online (Sandbox Code Playgroud)

知道如何让它工作吗?这似乎很容易修复,但我无法弄明白.

Mar*_*c B 6

$ con不在函数范围内,因此您传入的是一个局部变量,其整数值为null.您需要将其设为全局,或将连接作为参数传递:

function gw($name) {
   global $con;
}
Run Code Online (Sandbox Code Playgroud)

要么

function gw($name, $con) {
}

gw('foo', $con);
Run Code Online (Sandbox Code Playgroud)