【发布时间】:2018-05-20 09:22:26
【问题描述】:
我必须使用我已经知道的同一行中的其他列数据来检索列数据。
例如。表格
表名:夹具
fix_id | fix_against
1837 | Aus Vs. Eng
2942 | Ind Vs. SA
这里我已经知道“fix_id”。所以,我需要使用同一行中的“fix_id”检索“fix_against”值。
假设,如果 fix_id = 1837,我将检索 Aus v.S Eng (fix_against) 值。
这是我尝试过的。
global $wpdb; $known_value = 1837;
$sql = $wpdb->prepare( "SELECT fix_against FROM fixtures WHERE fix_id = '$known_value'");
$result = $wpdb->get_results( $sql );echo $result;
这显然行不通。任何建议都将受到高度赞赏。
【问题讨论】:
-
This doesn't apparently work... 什么不起作用?理想情况下,您应该使用准备好的语句,但您的查询对我来说是正确的。 -
我不是 SQL 专家,但可以试试这个 DB-API 2.0 命令来检索数据:
SELECT * FROM fixtures WHERE fix_id=2942;....顺便说一句,你的fix_id是整数类型,那你为什么要使用引号那里 ?试试这个代码:"SELECT * FROM fixtures WHERE fix_id=$known_value"引号仅代表字符串类型数据。 -
或者错误是语句后的分号?示例:
SELECT * FROM fixtures; WHERE fix_id=$known_value; -
@s3n0 感谢您的意见。我确实尝试了所有这些建议,但仍然无法正常工作。它返回“数组”。
-
尝试w3schools.com/php/php_mysql_select.asp 并使用
echo(PHP) 检查您的DB API 命令。也许有必要将您的变量用作字符串(在 API 命令字符串中)。你的$sql不是字符串,但我认为插入了一个对象,这是错误的。所以同样的事情,Ygor Yavych 在下一个答案中指出。尝试仅使用纯$sql字符串和 DB API 2.0 命令来查看它是否有效。不要忘记使用echo命令 (PHP) 或至少使用调试控制台来找出原因并检查是否正在发送正确的 DB API 命令。
标签: php mysql sql database wordpress