У меня проблема, и я не могу ее исправить самостоятельно ни с помощью друга.Почему этот сценарий базы данных не возвращает никаких результатов?
В основном, что я пытаюсь сделать, вызовите PHP-скрипт с двумя аргументами: username
и subscriptionid
.
PHP-скрипт должен считывать идентификатор пользователя по имени пользователя из таблицы «пользователь». Затем в другой таблице, называемой subscriptionlog
, проверьте, есть ли идентификатор пользователя и если да, посмотрите, есть ли у него запись с subscriptionid
. Если это так, распечатайте переменную «status» этой таблицы.
Вот мой код:
<?php
// checkkey.php?user=ZeD&subid=2 -> Called as GET
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";
$uname = $_GET["user"];
$subid = $_GET["subid"];
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT status FROM subscriptionlog WHERE subscriptionid = '$subid' AND userid = (SELECT userid FROM user WHERE username = '$uname')";
$result = mysqli_query($sql);
if($result === false)
echo("error with bitch sql");
while($row = mysqli_fetch_assoc($result))
{
echo $row["status"];
}
$conn->close();
?>
Это просто оставляет страницу пустой, нет никакого эха происходит вообще.
Вы пробовали этот запрос на mysql-клиенте? видите ли вы какой-либо результат? –
Измените if ($ result === 0) на if ($ result === false), поскольку mysqli вернет только False/True/mysqli_result, а не фактическое 0. Это будет гарантировать, что запрос не сработает , после чего вы можете напрямую протестировать против mysql, поскольку это, скорее всего, виновник. – MasterOdin
у вас есть синтаксическая ошибка sql – Jacob