2015-09-14 2 views
2

Я получаю эту ошибку:Фатальная ошибка при FETCH_ASSOC

Fatal error: Call to a member function fetch_assoc() on boolean in C:\xampp\htdocs\cronjob\SQLreader.php on line 13

<?php 
//readout Top10 
// Hier mySQL - Zugangsdaten eingeben. 
$servername = "*"; 
$username = "*"; 
$password = "*"; 
$db = "*"; 

$conn = new mysqli($servername, $username, $password, $db); 

$user = $conn->query("SELECT * FROM btcstats ORDER BY kdr DESC LIMIT 10"); 

while($a = $user->fetch_assoc()) { 
    $file = fopen("statscache.txt", "w+"); 
    fwrite($file, $a['uuid'] . "|" . $a['kills'] . "|" . $a['deaths'] . "|" . $a['gamesplayed'] . $a['gameswon'] . "|/n"); 
    fclose($file); 
} 

Так что у нас есть проблема здесь, некоторые из них могут найти ошибку?

+1

ваш запрос не удалось, и вы должны выяснить, почему это http://php.net/manual/en/mysqli.error.php –

+0

одна причина может быть здесь '$ сопп = новый MySQLi ($ ServerName , $ username, $ password, $ db); 'изменить это на' $ conn = new mysqli ($ servername, $ db, $ username, $ password); ' – Shehary

+0

@Shehary no, DB приходит последним. –

ответ

-1

Ответ в mysqli::query documentation.

Returns FALSE on failure. For successful SELECT, SHOW, DESCRIBE or EXPLAIN queries mysqli_query() will return a mysqli_result object. For other successful queries mysqli_query() will return TRUE.

Очевидно, что возникает ошибка MySQL, и функция возвращает false.

$user = $conn->query("SELECT * FROM btcstats ORDER BY kdr DESC LIMIT 10"); 

if ($user) { 
    while($a = $user->fetch_assoc()) { 
     $file = fopen("statscache.txt", "w+"); 
     fwrite($file, $a['uuid'] . "|" . $a['kills'] . "|" . $a['deaths'] . "|" . $a['gamesplayed'] . $a['gameswon'] . "|/n"); 
     fclose($file); 
    } 
} else { 
    die ("Mysql error: " . $conn->error); 
} 
+0

Sidenote: Возможно, вам понадобится второй взгляд на '/ n'. –

+0

Да, он должен, вероятно, исправить это тоже, но это не та часть, которая бросает его ошибку. – samlev

+0

Спасибо, что работа: D – motoxdev

Смежные вопросы