我使用此代码计算一个人在数据库中出现的次数(跨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;
这有效......但是,我想让它变得更容易,所以我可以用很多不同的名字来运行......所以我试过了......
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");
它不起作用。我刚收到以下错误消息
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
知道我怎么能让它运转起来吗?这似乎很容易修复,但我无法弄明白。
答案 0 :(得分:6)
$ con不在函数范围内,因此您传入一个局部变量,其整数值为null。您需要将其设为全局,或将连接作为参数传递:
function gw($name) {
global $con;
}
或强>
function gw($name, $con) {
}
gw('foo', $con);
答案 1 :(得分:2)
您正试图访问未在您的方法中定义的$con
。你要么写
global $con;
在方法的开头,或将其作为参数传递。
答案 2 :(得分:1)
变量$con
超出了范围,您有几个选项,但在现代PHP中,您可以使用函数内部范围内的变量:
$gw = function($name) use ($con) {
...
}