使用 $wpdb 类选择 MySQL 视图
Posted
技术标签:
【中文标题】使用 $wpdb 类选择 MySQL 视图【英文标题】:Selecting MySQL views using $wpdb class 【发布时间】:2015-11-13 02:57:56 【问题描述】:我正在构建一个 Wordpress 站点,它已连接到 mysql 数据库。我正在使用 wordpress 类 wpdb (https://codex.wordpress.org/Class_Reference/wpdb) 与数据库进行交互。使用该类,我可以查询我的数据库的表,但不能查询视图。
我需要能够选择我的数据库的视图。这是 wpdb 所不允许的,还是我的代码错了?有没有办法像使用 wpdb 查询表一样查询视图?
我尝试过使用查询功能,以及以与处理表相同的方式处理视图,但它不起作用。它返回空。
查询方法:
$test = $mydb->query(
$mydb->prepare(
"
SELECT name FROM $mydb->$view_name
WHERE id = 1"
)
);
echo $test; //returns empty; should return a name
表法:
$test = $mydb->get_var(
"select name from $view_name WHERE id = 1"
);
echo $test; //returns empty; should return a name
有什么建议吗?我是否可以使用 $wpdb 以外的方式连接到我的数据库(Wordpress 允许吗?)。
【问题讨论】:
name
似乎是 MySQL (reference) 中的保留字。尝试像这样用反引号(`)包围它。您应该看到一些错误,您是否留意日志?此外,当您对查询有疑问时,您可以简单地复制原始查询并将其执行到 phpMyAdmin 或您用来手动访问数据库的任何工具中。
啊!你解决了我的问题!您可能对保留的“名称”是正确的,但我发现的另一个问题是我的视图被命名为导致错误的东西!我尝试在 phpMyAdmin 中选择我的视图,这是(第一个)问题。 (对于后代,我的观点被称为“broccoli-and-roots-1price”,这导致了错误)。谢谢!
@Avalanche 你解决了我的问题,所以如果你愿意,如果你发布答案,我可以奖励你接受的答案!
嗯,谢谢,非常感谢您
【参考方案1】:
name
似乎是 MySQL 中的保留字 (reference)。尝试用反引号 (`) 将其包围,如下所示:
SELECT `name` FROM ...
您应该看到一些错误,您是否留意日志?此外,当您对查询有疑问时,您可以简单地复制原始查询并将其执行到 phpMyAdmin 或您用来手动访问数据库的任何工具中
【讨论】:
当然是反引号!我需要记住使用反引号以避免将来出现错误!以上是关于使用 $wpdb 类选择 MySQL 视图的主要内容,如果未能解决你的问题,请参考以下文章
Wordpress - $wpdb->插入 - MySQL NOW()