我正在使用 UniRest wordpress API(它用于 Unity 并使用 .Net)在 PHP 中为 wordpress rest API 编写 SQL 查询。我在此处执行简单的 SQL 查询时遇到问题。这就是我一直在尝试的:
global $wpdb;
$userID = $URInput["userID"];
$user_data = $wpdb->get_results( "SELECT * FROM wpdb->user_data WHERE unity_id = $userID" );
$result = array();
$result["userID"] = $user_data[0]["current_session"];
$UROutput["data"] = $result;
$UROutput["result"] = "OK";
我已经测试了 userID 以确保它是预期值,它与 result.userID 的输出相同(如果我手动设置 result.userID = 5,它工作正常)。看起来问题只能出现在 select 语句中,但我已经非常仔细地遵循了文档,当我尝试访问 $user_data[0]["current_session"] 时,我总是得到 0,而我期望得到 4 . 不确定发生了什么,所以任何帮助将不胜感激。
我已经多次更改 select 语句。我的第一个改变是:
SELECT * FROM {wpdb->prefix}user_data WHERE unity_id = $userID;
第二个变化:
SELECT * FROM user_data WHERE unity_id = $userID
最后,我更改了访问 user_data 的方式,例如:
$result["userID"] = $user_data["current_session"];
这里的所有更改都不起作用,我总是得到 userID 的值等于 0.
更新:
这是有问题的表结构的更新。 该表名为 user_data 并具有以下属性:
id (int), unity_id (int), session_1(int), session_2(int), session_3(int), session_4(int), session_5(int), session_6(int), session_7(int), session_8(int), session_9(int), session_10(int), school(int), current_session(int).
表中目前有以下元组:
(1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
(3, 13, -1, 1, 4, -1, -1, -1, -1, -1, -1, -1, 0, 4)
目前我正在尝试使用 select 语句访问上面列出的第二个元组
尝试使用箭头运算符访问列
$user_data[0]->current_session;
此外,确实确保在查询中使用
{$wpdb->prefix}user_data
使用动态表名以结束
SELECT * FROM {$wpdb->prefix}user_data WHERE unity_id = $userID
为了更好地处理所有情况,请尝试使用 if 语句首先检查是否有用户数据
if ($user_data) {
$result["userID"] = $user_data[0]->current_session;
} else {
// Handle the case when no matching rows are found
}
让我知道这对您有何影响?