2016-01-15 3 views
1

Мне нужна помощь с синтаксисом моего запроса. Я использую phpmyadmin 4 и mysql (не уверен в версии, но подозреваю, что это 5.6. Моя база данных имеет таблицу, называемую местами, содержащими столбцы id, city, state, sightings and date. Мой сайт вводит пользователя от пользователя через $_POST["city"] и $_POST["state"]. Я хочу увеличить видимость на 1, . записи таблицы для города и государства матчаphpmyadmin mysql синтаксическая ошибка - multi, где условия

Использование SQL конструктор запросов PhpMyAdmin, я тестирование возможные структуры запросов с использованием географических названий, а не переменных следующий запрос был успешно:.

UPDATE places SET sightings = sightings +1 WHERE city = "Denver" AND state = "Colorado" 

затем я нажал «создать PHP код ", который подготовил следующее:

"UPDATE places SET sightings=sightings+1 WHERE city = \"Denver\" AND state = \"Colorado\""; 

Я вставил этот код, заменяя название места для переменных, объявленных из $_POST["city"] и $_POST["state"] ...

$result = cs50::query("UPDATE places SET sightings=sightings+1 WHERE city = \"{$city}\" AND state = \"{$state}\""); 

и получил сообщение об ошибке:

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 ''Denver', 'Colorado')' 

Я возился с этой линией код часами и не может заставить его работать. Тот факт, что он работает в phpmyadmin, означает его выполнимость, я просто неправильно его кодирую.

Запрос функции определяется в пользовательской библиотеке, предоставляемой курсом, который я изучаю, CS50. Я задаюсь вопросом, есть ли какое-то ограничение функции (можно отправить код, если это интересно), или я просто использую неправильный синтаксис ???

Любая помощь приветствуется, извинения, если мой вопрос запутан, это относительно новичок.

+0

Что такое \ Denver \ в запросе, что означает «\». Никогда не видел, что до – BRoebie

+0

не уверен, я выполнил запрос в phpmyadmin, он работал, поэтому я нажал «создать PHP-код», и это то, что я получил, это очень запутанно! –

+0

Я верю, что phpMyAdmin добавил '\ '', чтобы избежать двойных кавычек в запросе, потому что без него PHP будет интерпретировать это как конец переменной. –

ответ

0

Вы пробовали:

"UPDATE places SET sightings=sightings+1 WHERE city = 'Denver' AND state = 'Colorado'"; 

Я всегда находил, что одиночные кавычки являются более правильными, чем двойные кавычки, даже если они убежали.

+0

yes Я пробовал одинарные кавычки, но вокруг переменных, то есть '' {city} ''. Я не уверен, что фигурные скобки являются правильным синтаксисом, я попробую снова тo, спасибо за ваш вход ..... пальцы скрещены –

+0

Я даже не уверен, что ваш синтаксис для «наблюдений + 1» правильный. Я бы подумал, что это должен быть ВЫБОР, потому что вам нужно захватить значение, которое вы обновление. Пробовали ли вы это? – durbnpoisn

Смежные вопросы