php - 在函数内通过 PDO 访问数据 - PHP

标签 php mysql pdo

我是 PHP 的新手,所以我提前为我发布的任何令人作呕的错误代码道歉...

我为健身训练营创建了一个基本的成员(member)系统。我有两个 SQL 表 - “成员”和“付款”。

我已经创建了一个表,并使用一个循环,我可以显示所有成员。现在,我希望能够使用函数 checkpayment() 检查成员(member)是否已付款。

此函数检查付款表,以查看在当前月份和年份内是否有包含该成员(member) ID 的付款的行。

即使在付款表中输入付款,用户仍显示为未付款。

function checkpayment($memberid, $month, $year){
    global $db;
            $payments = "SELECT * FROM 'payments' WHERE member_id = :memberid";
            $result = $db->prepare($payments);
            $result->bindParam(':memberid', $memberid, PDO::PARAM_INT);
            $result->bindParam(':month', $month, PDO::PARAM_INT);
            $result->bindParam(':year', $year, PDO::PARAM_INT);
            return $result->fetchColumn();
}

下面是显示成员的代码:

foreach($db->query('SELECT * FROM `members`') as $row) {
             $checkpayment = checkpayment($row['id'],10,2014);
             if(!$checkpayment){
              $status = "danger";
              $paid = "Unpaid";
             } else {
              $status = "success";
              $paid = "Paid";
             }
                echo '<tr class="'. $status .'">
                <td>'. $row['id'] .'</td>
                <td>' . $row['first_name'] . '</td>
                <td>' . $row['last_name'] .'</td>
                <td>' . $paid . '</td>
                <td>' . $row['programme'] . '</td>
              </tr>';

            }

但是,即使存在付款行,成员仍显示为未付款...

最佳答案

据我所知,如果您正在使用 prepare 函数,您还必须使用 execute()。试试下面,如果不行我会更新。

Here你可以看到一些关于 execute()

的细节
function checkpayment($memberid, $month, $year){
    global $db;
            $payments = "SELECT * FROM payments WHERE member_id = :memberid";
            $result = $db->prepare($payments);
            $result->bindParam(':memberid', $memberid, PDO::PARAM_INT);
            $result->execute();//ADD This line
            return $result->fetchColumn();
}

关于php - 在函数内通过 PDO 访问数据 - PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26266745/

相关文章:

mysql - SQL 查询产生错误的计数结果

php - 如何通过外键获取两个不同表的所有字段

php - 警告 : implode() [<a href ='function.implode' >function. 内爆</a>]:传递的参数无效

php - 如何使用准备好的 PDO 语句设置 ORDER BY 参数?

mysql - 使用 PDO 和 LIKE 不起作用,为什么?

php - CSS 样式不适用于 php 函数。 (WordPress)

php - 一些使 AS3 和 ZendAMF 协同工作的帮助

php - 仅当满足 php 条件时才运行 javascript 函数

php - 是否有用于交换两个变量值的 PHP 函数?

php变量导致while循环无限循环显示数据