如果那样的话testing_db
是你的WordPress数据库,那么你应该使用WordPresswpdb
API/class 与自定义表中的数据交互(wp_tmadm_dojangs
).
因此,如果您在“常规PHP”中就是这样做的,即使用本机PHP函数:
$sql = mysqli_query($conn, "SELECT dojangName FROM wp_tmadm_dojangs");
while ($row = $sql->fetch_assoc()){
$dojang = $row[\'dojangName\'];
echo "<option value=\'$dojang\'>$dojang</option>";
}
在WordPress中,这是一种方法:
$results = $wpdb->get_results( "SELECT dojangName FROM {$wpdb->prefix}tmadm_dojangs", ARRAY_A );
var_dump( $results ); // for debugging
foreach ( $results as $row ) {
$dojang = $row[\'dojangName\'];
echo "<option value=\'$dojang\'>$dojang</option>";
}
请检查
$wpdb->get_results()
(或
wpdb::get_results()
)
reference 有关函数语法、参数等的详细信息,但我可以从上述示例中告诉您:
$wpdb->get_results()
返回查询表中的行数组,默认情况下,每一行都是一个PHP对象,每一列都是对象中的一个属性,例如。$row->dojangName
.然而,在代码中,您可以看到我使用了ARRAY_A
常量,它将每一行作为关联数组,表列作为数组键,例如。$row[\'dojangName\']
.
但不管它是对象还是关联数组,该值当然是相应数据库列中的(原始)值。
如果要从数据库表中检索单个列/字段,则可以使用$wpdb->get_col()
它返回索引数组中的列值,即。array( 0 => \'value\', 1 => \'value2\', 2 => \'value3\', ... )
.
我推测您的WordPress数据库(表)前缀为wp_
, 而不是硬编码前缀,您应该使用$wpdb->prefix
获取前缀。
So使用
$wpdb->get_col()
, 我举的例子是:
$results = $wpdb->get_col( "SELECT dojangName FROM {$wpdb->prefix}tmadm_dojangs" );
var_dump( $results ); // for debugging
foreach ( $results as $dojang ) {
echo "<option value=\'$dojang\'>$dojang</option>";
}
顺便说一句,请确保在将数据库值呈现给用户之前转义这些值。E、 g。
echo \'<option value="\' . esc_attr( $dojang ) . \'">\' . esc_html( $dojang ) . \'</option>\';