Когда я сохраняю результат SQL-запроса в переменной (в коде в $ test2), переменная пуста вне цикла while. Зачем?
Обычно определение varibales внутри этого цикла работает (см. $ Test1). И SQL-запрос работает тоже.
$connection = new mysqli($servername,$username,$password,$dbname) or die("Error: " . mysqli_error($connection)); $query = "SELECT * FROM Table ORDER BY `id` ASC"; $result = mysqli_query($connection, $query); while($row = mysqli_fetch_object($result)) { $test1 = "some text"; $test2 = $row->id; echo $row->id // Output is the id -> works } echo $test1; // Output is "some text" -> works echo $test2; // Output is nothing -> doesn't work. Why?
Вы заменяете переменные в каждой итерации цикла. Сохраните их все в массив и посмотрите на результаты:
while($row = mysqli_fetch_object($result)) { $test1[] = "some text"; $test2[] = $row->id; echo $row->id // Output is the id -> works } print_r($test1); print_r($test2);
$row = mysqli_fetch_array($result)
возвращает массив
и вы используете $test2 = $row->id;
как объект