我在 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/