Я хочу, чтобы результаты моего БД выполнялись с Session
но я не получаю никаких результатов или ошибок:
$_SESSION['username'];
$link = mysqli_connect("$myHost", "$myUser", "$myPass", "$myDB");
// Check connection
if($link === false){
die("ERROR: Could not connect. " . mysqli_connect_error());
}
$username = mysqli_real_escape_string($link, $_SESSION['username']);
$sql = "SELECT * FROM users where username = $username";
$result = mysqli_query($link, $sql);
echo $result;
Кто-нибудь знает, почему нет? Работа сессии.
Спасибо
Вы должны изменить свой запрос следующим образом:
$sql = "SELECT user FROM yourtablename WHERE username = $username"
Если "пользователь" - это то, что вы хотите выбрать, если вы хотите выбрать все данные, вы можете использовать "*", yourtablename - имя таблицы таблицы, которую вы хотите выбрать.
После ваших изменений ваш код должен выглядеть так:
$_SESSION['username'];
$link = mysqli_connect("$myHost", "$myUser", "$myPass", "$myDB");
// Check connection
if($link === false){
die("ERROR: Could not connect. " . mysqli_connect_error());
}
$username = mysqli_real_escape_string($link, $_SESSION['username']);
$sql = "SELECT * FROM users where username = $username";
if ($result = $link->query($sql)) {
while ($row = $result->fetch_row()) {
var_dump($row);
}
$result->close();
}
Больше информации здесь
Обратите внимание: mysqli_real_escape_string
это не очень безопасно. Лучший вариант для защиты от SQL-инъекций - это использование подготовленных операторов, более подробная информация здесь
Можете ли вы попробовать это,
$sql = "SELECT * FROM users WHERE username = '".$username."'";