wpdb-> prepare()返回NULL

时间:2015-08-30 22:40:00

标签: php mysql wordpress

我无法弄清楚为什么这会返回“NULL”。我已将日期/时间字符串硬编码到$ scheduledDates变量中。在实践中,这是用户输入。当我不准备查询时,一切正常。

$scheduledDate = "2015-09-01 00:00:00";

$queryString = "SELECT * FROM schedules WHERE event_start > %s AND event_start < %s + INTERVAL 1 DAY";

$scheduled_blocks = $wpdb->get_results( $wpdb->prepare( $queryString, $scheduledDate ) );

以下代码运行正常,无论我是否对日期/时间进行硬编码......

$scheduledDate = $_POST['scheduledDate'];

$scheduled_blocks = $wpdb->get_results('SELECT * FROM schedules WHERE event_start > "' . $scheduledDate . '" AND event_start < "' . $scheduledDate . '" + INTERVAL 1 DAY');

1 个答案:

答案 0 :(得分:2)

使用$wpdb->print_error()查看您获得的错误。通过代码的外观,我认为占位符的数量必须与您为prepare方法提供的值的数量相同。改变你对此的呼吁:

$wpdb->prepare($queryString, $scheduledDate, $scheduledDate)