Когда я жёстко мой запрос, как это, запрос возвращает правильный результат:MySQL запросов не работает с PHP переменных
$data = mysql_query("SELECT * FROM $table_name WHERE post_ID = '1'") or
die(mysql_error());
Но когда я использую переменную PHP, как это, запрос не возвращает никаких результатов:
$data = mysql_query("SELECT * FROM $table_name WHERE post_ID = '$ID'") or
die(mysql_error());
Я инициализируется переменная выше, следующим образом:
$ID = $_POST[ID];
И переменная работает каждый раз с этим утверждением:
$sql = "INSERT INTO $table_name (post_ID, user_name, comments)
VALUES ('$ID','$name', '$comment')";
Так что я не понимаю, почему переменная будет вставить правильно в моей SQL таблицы с предыдущим утверждением, но не работает с запросом. Я использую тип данных varchar в таблице sql для поля post_ID.
[** Пожалуйста, не используйте '' * mysql_ функции в новом коде **] (http://bit.ly/phpmsql). Они больше не поддерживаются [и официально устарели] (http://j.mp/XqV7Lp). См. [** красное поле **] (http://j.mp/Te9zIL)? Узнайте о [* подготовленных операторах *] (http://j.mp/T9hLWi) и используйте [PDO] (http://php.net/pdo) или [MySQLi] (http://php.net/ mysqli) - [эта статья] (http://j.mp/QEx8IB) поможет вам решить, какой из них. Если вы выберете PDO, [здесь хороший учебник] (http://j.mp/PoWehJ). –
это должно быть '$ ID = $ _POST ['ID'];' no ..? – MatRt
$ _POST [ID]; все равно предположил бы, что строка, предоставляющая идентификатор, не была определена как константа. (обратите внимание, что это вызовет ошибку уровня WARNING). Поэтому необязательно, но вы можете быть верны. – Mechzeit