使用wpdb query / prepare的MySQL语法错误

时间:2014-02-13 01:51:04

标签: mysql sql wordpress syntax-error wpdb

我只是尝试使用wpdb查询和准备语句来运行查询。

在我的页面上返回:

  

[您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以便在第1行的“myQuery”附近使用正确的语法

PHP代码:

<?php
    $dirName1 = 'C:/wamp/www/c2c/wp-content/themes/flawless-v1-01';
    $dirName2 = 'C:/wamp/www/c2c';
    require_once($dirName1.'/config/setup.php');
    require_once($dirName2.'/wp-config.php');
    require_once($dirName2.'/wp-load.php');

    $wpdb->show_errors();
    $tableName = $wpdb->prefix . "user_orders";
    $user = wp_get_current_user();
    $userId = $user->ID;
    $userName = $user->user_login;
    // echo $tableName . ':  ' . $userId . ': '. $userName; 
    // echo var_dump($tableName); 
    // echo var_dump($userId); 
    // echo var_dump($userName); 
    // These echo the correct formats for the prepare statement below
    $myQuery = $wpdb->query(
        $wpdb->prepare("
            SELECT * 
            FROM $tableName 
            WHERE `user_id` = %d 
            AND `user_name` = %s", 
            $tableName, 
           $userId, 
        $userName)
    );
    $results = $wpdb->get_results(myQuery, ARRAY_A);
?>

1 个答案:

答案 0 :(得分:1)

您在变量名称前缺少美元符号:

$results = $wpdb->get_results(myQuery, ARRAY_A);

应该是

$results = $wpdb->get_results($myQuery, ARRAY_A);