Я пытался оборачивать голову, почему мой запрос не возвращает никаких результатов из моей таблицы. Имя моей таблицы - wp_user_orders. Столбец user_name находится в этой таблице. Оба готовят и запрашивают обратные пустые массивы. Результат get с запросом внутри возвращает ошибку базы данных.wpdb SQL Неизвестный столбец «имя пользователя» в ошибке «where clause»
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');
require_once($dirName1.'/include/function/encryption-class.php');
require_once($dirName1.'/include/function/price-calculations.php');
define('WP_DEBUG', true);
$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);
$myQuery = $wpdb->prepare("SELECT * FROM $tableName WHERE user_name = %s", $tableName, $userName);
$results = $wpdb->get_results($wpdb->prepare("SELECT * FROM %s WHERE user_name = %s", $tableName, $userName), ARRAY_A);
$results2 = $wpdb->get_results($wpdb->query("SELECT * FROM $tableName WHERE user_name = $userName"));
print_r($results2);
echo var_dump($results2);
print_r($results);
echo var_dump($results);
$wpdb->print_error;
?>
Мой PHP показывает:
wp_user_orders: 2: kronus
string 'wp_user_orders' (length=14)
int 2
string 'kronus' (length=6)
WordPress database error: [Unknown column 'kronus' in 'where clause']
SELECT * FROM wp_user_orders WHERE user_name = kronus
null
Array ()
array (size=0)
empty
У меня есть чувство, что я просто отсутствует что-то очевидное, но я в тупик.
ОБНОВЛЕНО:
Обновленный мой неправильный подготовленное заявление.
Предыдущие:
$wpdb->prepare("SELECT * FROM $tableName WHERE `user_name` = %s", $tableName, $userName)
Новый:
$wpdb->prepare("SELECT * FROM %s WHERE `user_name` = %s", $tableName, $userName)
Новых ошибки от изменения:
WordPress database error: [You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''wp_user_orders' WHERE `user_name` = 'kronus'' at line 1]
SELECT * FROM 'wp_user_orders' WHERE `user_name` = 'kronus'
Это вернуло некоторые результаты успешно! У вас есть какая-то подсказка, почему мой обновленный подготовленный оператор в моем редактировании не работает? – Conner
Поскольку имя-табло является частью структуры запроса, а не значением данных, поэтому оно не должно передаваться в качестве подготовленной переменной. – Anigel
Ничего себе ... смущающая ошибка там. Спасибо Анигель! – Conner