0

我正在使用新的 wpdb 来使用 wordpress 访问数据库。

$mydb = new wpdb($username,$password,$database,$hostname);
$sql = $mydb->prepare("SELECT * FROM " . $table);
$results = $mydb->get_results($sql);

此行产生错误:

$sql = $mydb->prepare("SELECT * FROM " . $table);

wpdb::prepare 被错误地调用。wpdb::prepare() 至少需要两个参数。

以下所有语句都会产生相同的错误:

$sql = $mydb->prepare("SELECT * FROM $table");
$sql = $mydb->prepare("SELECT * FROM '%s'", $table);

我如何在没有参数的情况下编写它?

(我正在使用 wordpress 3.5)

4

1 回答 1

0

在上一个示例中从 '%s' 中去掉单引号,假设 $table 是有效的表名,这应该可以工作。

编辑: $wpdb->prepare() 在更有限的范围内与 php 的 sprintf() 类似。如果你只传递一个参数,它不会任何事情。在 3.5 发布后,请参阅 Andrew Nacin 的帖子:http: //make.wordpress.org/core/2012/12/12/php-warning-missing-argument-2-for-wpdb-prepare/

第二个参数将替换可替换字符集的第一个实例,即 %s、%d 或 %f,第三个参数将替换第二个实例,依此类推。

于 2013-04-05T20:24:00.727 回答