2015-12-18 6 views
-2

У меня проблема, когда я не могу получить результат из моей базы данных MySQL (через PHP). Я использую ту же функцию в других местах, и она работает безупречно. Однако на данный момент я продолжаю получать сообщение «Предупреждение: mysqli_query(): Не удалось получить mysqli».
Heres мой PHP код:Создание php-файла

<?php 
$servername = "localhost"; 
$username = "root"; 
$password = "123456"; 
$dbName = "cool_yt_rpg"; 

//Make Connection 
$conn = new mysqli($servername, $username, $password, $dbName); 
//Check Connection 
if(!$conn){ 
    die("Connection Failed." . mysqli_connect_error()); 
} 

$sql = "SELECT ID, Name, Type, Cost FROM items"; 
$result = mysqli_query($conn ,$sql); 

if(mysqli_num_rows ($result)){ 
    //show data for each row 
     while($row = mysqli_fetch_assoc($result)){ 
     echo "ID:" .$row['ID'] . "Name:" .$row['Name'] . "Type:".$row['Type'] . "Cost:" .$row['Cost'] . "<br>"; 
     } 
} 
?> 

и я получил эту ошибку:

Warning: mysqli::mysqli() [mysqli.mysqli]: (28000/1045): Access denied for user 'root'@'localhost' (using password: YES) in C:\xampp\htdocs\Cool_YT_RPG\ItemsData.php on line 8

Warning: mysqli_query() [function.mysqli-query]: Couldn't fetch mysqli in C:\xampp\htdocs\Cool_YT_RPG\ItemsData.php on line 15

Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, null given in C:\xampp\htdocs\Cool_YT_RPG\ItemsData.php on line 17

+0

в первой строке, он сказал, что он не смог подключить вашу базу данных. Вы уверены, что предоставляете правильный идентификатор? – Matriac

+0

неправильные учетные данные. Исправьте это, а остальное последует. Если вы ранее не назначали пароль для своей установки, удалите его. '$ password =" ";' и/или убедитесь, что вы предоставили разрешения. –

+0

Можете ли вы войти в систему с этими учетными данными в командной строке? – piscator

ответ

-1

Выглядит как $result возвращается нуль по какой-то причине. Вы хотите исследовать причину.

Что сказал, вы могли бы сделать это так, что не откажет, когда это произойдет:

if(isset($result) && mysqli_num_rows ($result)) 

А потом напечатать какое-то сообщение об ошибке в блоке другого.

+2

Ну, я думаю, ошибка в его связи. Как вы видите, первая ошибка: «Доступ запрещен для пользователя« root »@« localhost » – Matriac

+1

Насколько я прав, я предоставил вам способ предотвратить полную сбой программы, когда это произойдет (эта информация также не была в вопросе когда я опубликовал). Нуль-чеки - это, как правило, хорошая идея, даже если вы не ожидаете, что это произойдет (количество раз, которое я сказал себе, «это никогда не будет равным нулю», чтобы узнать недели или месяцы спустя, что да, на самом деле это может быть * больше, чем я могу рассчитывать). – Draco18s

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