php $wpdb->获取结果:如何返回单个列中的所有数据?

zwghvu4y  于 2023-02-11  发布在  PHP
关注(0)|答案(3)|浏览(141)

下面是我的疑问:

global $wpdb; 
$result = $wpdb->get_results( "SELECT NAME_MYCOLUMN FROM NAME_TABLE");
foreach ( $result as $row ) 
{
    $data = "$row-> NAME_MYCOLUMN|";  
}
$val = "'/\b($data)\b/i'"; 
echo $val;

我得到这个:

'/\b(word1|)\b/i'

其中word1是最后一个值。
相反,我希望这样:

'/\b(word1|word2|word3|word4|.......)\b/i'

我的目标是获取所有列的值,而不仅仅是最后一个。
谢谢大家,但这三种解决办法都不奏效,结果是一样的:(我的表格里有一百多个字,但我有:

'/\b(word1|word2|word3|word4|word5|word6|word7|word8|

有解决办法吗?
编辑
我已经明白错误在哪里了。我不小心将一个ID9〈word9的单词添加到数据库中,这个(〈)已经破坏了ID为8的单词后面的代码

idfiyjo8

idfiyjo81#

你可以使用$wpdb->get_col来获取一个数组值,然后使用implode将它们与|连接起来。

global $wpdb; 
$result = $wpdb->get_col( "SELECT NAME_MYCOLUMN FROM NAME_TABLE");
$data = implode('|', $result);
$val = "'/\b($data)\b/i'";
mbskvtky

mbskvtky2#

global $wpdb; 
$result = $wpdb->get_results( "SELECT NAME_MYCOLUMN FROM NAME_TABLE");
$val = "'/\b("; 
foreach ( $result as $row ) 
{
  $val .= "$row-> NAME_MYCOLUMN|";
}
$val .= ")\b/i'"; 

echo $val;
mefy6pfw

mefy6pfw3#

可以使用GROUP_CONCAT返回一行中的所有行

$result = $wpdb->get_results( "
     SELECT 
     GROUP_CONCAT(NAME_MYCOLUMN SEPARATOR '|') as NAME_MYCOLUMN 
     FROM NAME_TABLE
");

相关问题