使用 wordpress 在 PHP 中自定义 SQL 查询

问题描述 投票:0回答:1

我正在使用 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 语句访问上面列出的第二个元组

php wordpress unity3d unirest
1个回答
0
投票

尝试使用箭头运算符访问列

$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
}

让我知道这对您有何影响?

© www.soinside.com 2019 - 2024. All rights reserved.