Я вытягиваю свои волосы. У меня есть два оператора SELECT, которые в основном являются одним и тем же принципом. Первый работает, а второй не будет работать с предложением WHERE. Мне нужны свежие глаза и предложения. Я был на каждом форуме и читал каждый пост и пробовал много «решений» безрезультатно. Надеясь, что кто-то увидит то, что я пропустил.Mysql SELECT с предложением WHERE, которое не работает с переменной
$oID = zen_db_prepare_input($_GET['oID']);
// Color coding for invoice -Start queries---
$query = "SELECT * FROM cart1_orders WHERE orders_id = $oID";
$result = $db->Execute($query);
$shiploc = $result->fields['shipping_method'];
if ($result->RecordCount() > 0) {
echo 'Test Query: = ' . $result->fields['shipping_method'];
} else {
echo 'Sorry, no record found for product number ' ;
}
$sql = "SELECT * FROM cart1_store_locations WHERE pickup_name= $shiploc";
$results = $db->Execute($sql);
$newcolorblock = $results->fields['color_code'];
if ($results->RecordCount() > 0) {
echo 'Color Query: = ' . $results->fields['color_code'];
echo 'Location: = '. $results->fields['pickup_name'];
} else {
echo 'Sorry, no record found for Color Code ' ;
}
Заранее благодарю вас за помощь и предложения, надеюсь, вы сможете увидеть что-то, чего я не могу.
Результаты первого запроса: Test Query: = Store Pickup (Mooresville - Gold's Gym) Результаты второго запроса: ПРЕДУПРЕЖДЕНИЕ: Произошла ошибка, обновите страницу и повторите попытку.
Если предложение WHERE удалено, оно возвращает значения, но не правильные. Мне нужна инструкция WHERE для получения правильной информации.
ОТВЕТ любезно предоставленный bloodyKnuckles :)
$sql= "SELECT * FROM cart1_store_locations WHERE pickup_name= $shiploc";
изменено на следующее: (Необходимо, чтобы экранировать сравнительному для «с в таблице данных)
$shiploc_escaped = mysql_escape_string($shiploc);
$sql = "SELECT * FROM cart1_store_locations WHERE pickup_name= '".$shiploc_escaped."'";
Я не использовал этот форум раньше. ЛЮБИТЬ ЭТО!!! Всем спасибо!
ли '$ shiploc' строку? Похоже, вы рассматриваете его как целое (не цитируется). – bloodyKnuckles
Да, должна быть строка. Я пробовал одинарные кавычки с ним, и это тоже не работает. – kngiggles
Вам действительно нужно узнать о соединениях SQL и параметризованных операторах. – eggyal