似乎无法使此查询工作


Cant seem to get this query to work

这个查询是在mij旧的登录脚本上进行的,但现在我有了这个新的登录脚本,我的代码不得不更改一点,Wich我似乎无法完成。我认为问题最终在于检查用户是否在线。。。

这是我的代码

<?php
session_start();
require_once 'class.user.php';
$user_home = new USER();
if(!$user_home->is_logged_in())
{
    $user_home->redirect('index.php');
}
$stmt = $user_home->runQuery("SELECT * FROM tbl_users WHERE userID=:uid");
$stmt->execute(array(":uid"=>$_SESSION['userSession']));
$row = $stmt->fetch(PDO::FETCH_ASSOC);
?>
<?php
    function pay_credits() {
    mysqli_query("UPDATE `tbl_users` SET `credits`=`credits`-'1' WHERE `watching`='1' AND `credits`>'0' AND userID=:uid");
    } 
?>
<?php
    pay_credits();
?>

顶部的脚本运行良好,但函数pay_credits不起作用,我试着把mysql改成mysqli,因为我听说它已经被弃用了,但仍然没有结果,我也读过关于pdo的文章,但我对此一无所知。欢迎任何帮助,我也喜欢学习,所以也许你可以解释一下你做了什么。Thnx:)

First:如果您阅读mysqli_query手册,您将看到mysqli_query接受两个参数。第一个是CCD_ 2,第二个是CCD_。

您在pay_credits函数中看到link了吗?没有。

第二:我注意到您使用PDO::FETCH_ASSOC,然后突然切换到mysqli

PDOmysqli完全不同的API,您应该选择使用哪一个。

如果在没有设置的情况下使用pay_credits(),则函数mysqli_query需要数据库连接的params。