php mysql_query()返回一个错误

php mysql_query()返回一个错误,php,mysql,Php,Mysql,我在php中遇到了mysql_查询函数的问题,这正是代码中的问题 function cierraSesion($cookie) { $fecha = date("Y-m-d"); $hora = date("H:i:s"); global $connection; $query = "UPDATE conection SET FEC_DESCONEXION = '$fecha', FEC_HORADESCON = '$hora' WHERE VAR_COOKIE

我在php中遇到了mysql_查询函数的问题,这正是代码中的问题

function cierraSesion($cookie) {
    $fecha = date("Y-m-d");
    $hora = date("H:i:s");
    global $connection;
    $query = "UPDATE conection SET FEC_DESCONEXION = '$fecha', FEC_HORADESCON = '$hora' WHERE VAR_COOKIE = '$cookie'";
    mysql_query($query, $connection) or die("error:" . mysql_error());
    }
当我执行此代码时,会出现以下错误:警告:mysql\u query():提供的参数在中不是有效的mysql链接资源

现在,您可以认为“$connection”变量有问题,但是我在同一个文件中的其他60个函数中使用了完全相同的变量,没有任何问题,我已经用die($query)检查了生成输出的查询,并手动执行它以检查任何查询错误,但工作正常

以下是一个工作函数的示例:

function abrirSesion($nombre, $sesion) {
    $fecha = date("Y-m-d");
    $hora = date("H:i:s");
    $fechaf = date("Y-m-d", strtotime("+30 minutes"));
    $horaf = date("H:i:s", strtotime("+30 minutes"));
    global $connection;
    $ip = get_client_ip();
    $query = "INSERT INTO conection (VAR_IDUSUARIO, FEC_CONEXION, FEC_HORACONEX, FEC_DESCONEXION, FEC_HORADESCON, VAR_IP, VAR_COOKIE)
                  VALUES ('$nombre', '$fecha', '$hora', '$fechaf', '$horaf', '$ip', '$sesion');";
    mysql_query($query, $connection) or die("error:" . mysql_error());
}

谢谢您能给我的任何帮助。

在您的功能中,
$connection
超出了您的功能范围。因此,即使它已经被设置在其他地方,您的函数也不会看到它。您可以将其全球化,但这是一种可怕的编码方式,因为它使确定您实际引用的变量变得复杂(只需一个人重新定义
$connection
即可中断您的函数)

这里的最佳实践是将变量作为传递的参数注入

function cierraSesion($cookie, $connection) {
    /** code removed to highlight solution */
    mysql_query($query, $connection) or die("error:" . mysql_error());
}
这样,您就不用猜测
全局变量了


我假定你知道代码> MySqLyQuase所以我只需要添加一个.< /p>你应该考虑切换到MyQuLi或PDO。我和一个团队一起工作,现在他们不想切换,不管函数被删除了,他们可能会在PHP团队移除它时改变他的观点。你可以认为这是一个“$连接”的问题。变量-我认为这正是信息告诉你的。不管你在哪里用过它,这就是你的问题所在。在调用此函数之前是否对其进行了初始化?是否检查了查询是否在PHP代码之外执行?还有我对球队的事表示哀悼。。。我知道这是什么感觉…很抱歉回答失败,我以为您在工作示例中只声明了$connection全局..:X