2013-07-16 2 views
-4

У меня этот же запрос выполняется на других скриптах PHP, но теперь это не сработает. У меня есть проблемы с устранением неисправностей в течение восьми часов и разочарование, как никто не знает.Простой PHP-скрипт MySQLi не запускается

<?php 
    $con = mysqli_connect("localhost","dave1_guest","password1") 
     or die('Could not connect: ' . mysqli_error()); 

    mysqli_select_db("dave1_main",$con) or die(mysqli_error()); 

    $result = mysqli_query("SELECT * FROM Inventory limit 100"); 

    while($row = mysqli_fetch_array($result)) { 
     echo $row['ItemNumber'];    
    } 
    mysqli_close($con); 
?> 

Я попытался выполнить запрос на PhpMyAdmin, и он возвращает 0 результатов! Это невозможно. Когда я открываю таблицу с PhpMyAdmin, она открывается и показывает тысячи строк!

Когда я запускаю запрос, который использует PhpMyAdmin, он работает. Но когда я добавляю ограничение вроде WHERE StockNumber='13922', это не так.

Опять глупо, что этот скрипт работает на других страницах PHP на моем сайте.

+0

Я все время рассматриваю этот тип вопроса, вы должны прочитать [обычную отладку базы данных для PHP и MySQL] (http://jason.pureconcepts.net/2013/04/common-debugging-php-mysql/). –

+1

Я бы не рекомендовал менять функции от 'mysqli' до' mysql', что звучит довольно произвольно. Я предлагаю искать каждую функцию в руководстве, проверять входы и выходы и делать «var_dump» в результате каждого из них, чтобы убедиться, что это то, что вы ожидаете. – halfer

+0

Как я уже сказал. 8 часов отладки. Я попробовал материал в этой статье. –

ответ

1

Вы извлекаете данные дважды. Удалите эту строку $row = mysqli_fetch_array($result);

+0

нет. тоже не работает. Даже включение запроса в phpmyadmin не будет работать! –

+0

@dave: не удаляет тот факт, что вы извлекаете дважды. Прибытие до тех пор, пока while() просто не будет перезаписано извлечения в цикле, уничтожив строку, которую вы извлекли. Если запрос возвращает только одну строку, вы все равно «ничего», потому что вы уничтожили то, что было возвращено. –

+1

Тогда это, должно быть, проблема с вашей БД, если она не работает через phpmyadmin – Vector

1

Я не знаю, в чем ваша проблема, поэтому я не вижу точной ошибки, но я попробую немного помочь. Прежде всего:

$con = mysqli_connect("localhost","dave1_guest","password1") or die('Could not connect: ' .  mysql_error()); 

mysqli_select_db("dave1_main",$con) or die(mysql_error()); 
$result = mysqli_query("SELECT * FROM Inventory LIMIT 100"); 
$row = mysqli_fetch_assoc($result); 
print_r($row); 
while($row) 
{ 
    echo $row['ItemNumber'];    
} 

mysqli_close($con); 

Попробуйте это!

+0

попробовал. не работает еще. –

+0

@DaveFes Что вернуло 'print_r ($ row);'? Если пустой результат - у вас неправильный SQL-запрос. – RomanGorbatko

+0

Роман, он ничего не возвращает. Как я уже сказал, даже запуск запроса в PHPmyadmin не возвращает строк и ошибок. –

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