Я отправляю себя сумасшедшим, выясняя, в чем проблема, связанная со следующим кодом. Все имена в базе данных точны, поскольку я их здесь, однако я не могу получить информацию из цитаты, используя $ quoteid, однако, когда я набираю идентификатор static, например quoteid = 12, я могу фильтровать данные. Очевидно, это не идеально.
<?php
$quoteid = $_GET["quoteid"];
if ($_GET['quoteid']) {
$quoteid = $_GET["quoteid"];
}
$quote = $db->getRow("SELECT * FROM quotes WHERE quoteid = $quoteid");
?>
Html
<h1><?php echo $quote->description;?></h1>
Любая помощь будет принята с благодарностью.
Благодаря,
Мелисса
почему вы снова и снова получаете $_GET["quoteid"]
а также используете single для переменной при написании SQL-запросов
<?php
$quoteid = $_GET["quoteid"];
if (!empty($quoteid)) {
$quote = $db->getRow("SELECT * FROM quotes WHERE quoteid = '$quoteid'");
}
else {
echo 'quote id is empty';
}
?>
также используйте mysql_real_string_escape()
чтобы предотвратить инъекцию sql
Обратите внимание, что вам нужно поместить переменные PHP в одинарные кавычки при написании SQL-запросов. Сделайте это как в примере:
$quote = $db->getRow("SELECT * FROM quotes WHERE quoteid = '$quoteid'");
Вы должны выполнить следующую... основную отладку.
print_r
или var_dump
для $_GET
чтобы узнать, как и как "quoteid" настроен в суперглобальном $_GET
echo
ваш SQL (вместо mysql_query
просто echo
его) и запустите его в phpmyadmin, если это будет нормально - у вас может быть что-то, что вы пропустили где-тоТаким образом, вы сможете быстрее выяснить свою проблему
ошибка в синтаксисе запроса с переменной $ quoteid. вы должны использовать этот one-
global $db;
$quote = $db->get_row("SELECT * FROM quotes WHERE quoteid ='".$quoteid."'");