mysqli_fetch_array () не создает массив - PullRequest
0 голосов
/ 26 сентября 2019

Я не могу поместить результирующий набор в массив, а затем использовать print_r для распечатки массива.Вот сценарий:

<?php

require( 'wp-load.php' );

$local = 'xxx';
$user  = 'xxx'; 
$pass  = 'xxx';
$data  = 'xxx';

$testConnection  = mysqli_connect($local,$user,$pass, $data); 


if (!$testConnection) {
die('Error: ' . mysqli_connect_errno() . PHP_EOL);
}
echo 'Database connection working!';


global $wpdb;
$result = $wpdb->get_results ( "SELECT * FROM $wpdb->options" );


/* this is commented out but works 

foreach ( $result as $row )   {
echo $row->option_id.'<br>';
}   
*/  

//PART NOT WORKING    

$results = [];
while($row = mysqli_fetch_array($result,MYSQLI_NUM))
{
    echo "hello";  //never executes?????
    $results[] = $row;

}

//$results has all that you need
print_r($results);  //empty array??? 




 $testClosed = mysqli_close($testConnection);



 if ($testClosed) {
     echo "closed";
 }


?>

1 Ответ

0 голосов
/ 26 сентября 2019

while($row = mysqli_fetch_array($result,MYSQLI_NUM))
{
    echo "hello";  //never executes?????
    $results[] = $row;
}

Попробуйте удалить из него оператор while.Массив будет дан вам с mysqli_fetch_array.Поэтому просто напишите это так:

 $row = mysqli_fetch_array($result,MYSQLI_NUM);
 $results[] = $row;

Вы можете просто получить доступ к индексам с помощью $ row [...], но все же, до вас.

С другой стороны:

В документации по функции есть такое утверждение: Return Value: Returns an array of strings that corresponds to the fetched row. NULL if there are no more rows in result-set.Таким образом, вы можете вызывать неверную таблицу из вашей БД.

...