这个查询是在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
。
PDO
和mysqli
是完全不同的API,您应该选择使用哪一个。
如果在没有设置的情况下使用pay_credits()
,则函数mysqli_query
需要数据库连接的params。