似乎无法让这个查询起作用

时间:2016-01-04 11:12:26

标签: php sql

此查询正在处理mij较旧的登录脚本,但现在我有了这个新的登录脚本,我的代码不得不改变一个litlle,我似乎无法启动。我认为麻烦是最终if用户在线的地方被检查......

这是我的代码

<?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:)

2 个答案:

答案 0 :(得分:0)

首先:如果您阅读mysqli_query manual,您会看到mysqli_query有两个参数。第一个是link,第二个是query string

您在link功能中看到pay_credits了吗?不。

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

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

答案 1 :(得分:0)

您在没有设置的情况下使用pay_credits(),您的函数mysqli_query需要使用参数进行数据库连接。