php - 如何在 PHP 脚本中正确地将元素与 SQL 表隔离

标签 php mysql arrays wordpress date

我在 PHP 脚本中运行此 SQL:

$sql =  "SELECT u.id AS id, ul.meta_value AS lastpaymentdate, rd.meta_value AS noemails 
FROM wp_users u 
LEFT JOIN wp_usermeta rd ON rd.user_id=u.id AND rd.meta_key='noemails' 
LEFT JOIN wp_usermeta ul ON ul.user_id=u.id AND ul.meta_key='lastpaymentdate' 
WHERE u.user_email = 'testemail@domain.com'";

$rs = $db->Execute($sql);

如果我在 SQL 控制台中运行它,它会输出以下数据:

+------+-----------------+----------+
|  id  | lastpaymentdate | noemails |
+------+-----------------+----------+
  2523      2013-10-30        0

我需要将最后付款日期 (2013-10-30) 获取到数组 $lastRenewalDateParts 中。

我想出的是:

$lastRenewalDateParts = explode('-', $rs->data[0][1]);

但是,它无法正常工作。它给了我一个空数组。我哪里可能出错了?

编辑:这是 print_r($rs) 的结果:

mysqli_driver_ResultSet Object
(
    [connectionId] => mysqli Object
        (
            [affected_rows] => 1
            [client_info] => 5.5.30
            [client_version] => 50530
            [connect_errno] => 0
            [connect_error] => 
            [errno] => 0
            [error] => 
            [field_count] => 3
            [host_info] => Localhost via UNIX socket
            [info] => 
            [insert_id] => 0
            [server_info] => 5.5.38-35.2
            [server_version] => 50538
            [stat] => Uptime: 2030485  Threads: 19  Questions: 2452324326  Slow queries: 6246  Opens: 22784920  Flush tables: 1  Open tables: 16800  Queries per second avg: 1207.752
            [sqlstate] => 00000
            [protocol_version] => 10
            [thread_id] => 44573449
            [warning_count] => 0
        )

    [fields] => Array
        (
            [id] => 2523
            [lastpaymentdate] => 2013-10-30
            [noemails] => 0
        )

    [resultId] => mysqli_result Object
        (
            [current_field] => 0
            [field_count] => 3
            [lengths] => Array
                (
                    [0] => 4
                    [1] => 10
                    [2] => 1
                )

            [num_rows] => 1
            [type] => 0
        )

    [_currentRow] => 0
    [_numOfRows] => 1
    [_numOfFields] => 3
    [fetchMode] => 1
    [EOF] => 
    [record] => Array
        (
        )

)

最佳答案

我错误地访问了数据。我最初的尝试是空的:

echo $rs->data[0][1];

访问日期字段的正确方法:

echo $rs->fields[lastpaymentdate];

谢谢杰伊!

关于php - 如何在 PHP 脚本中正确地将元素与 SQL 表隔离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26429758/

相关文章:

php - 加载 WordPress 帖子而不使用 get_header() 和 get_footer()

php - 用其他数组中的值替换数组中的占位符

java - 找到数组中的 k 最小整数

php - 将 google reCaptcha 集成到现有的付款表单中

php - Mysql join 查询从其他表中检索具有 id 的用户的个人资料图像

PHP |通过重新排序从数组中删除元素?

mysql - 优化应用程序和 dbhost 之间的速度

mysql - 在nodejs中解析字符串

Mysql Merge 2 Columns in table 但更喜欢第一列值而不是第二列

php - 在 codeigniter 中显示来自两个表的数组数据