MAMP, записей не возвращено

#php #mysql #mamp

#php #mysql #mamp

Вопрос:

Я открываю прошлогодний проект и решил попробовать MAMP на новом компьютере, показался довольно крутым.

Похоже, что все запущено, PHP работает, и я перестроил базу данных в phpMyAdmin.

После добавления некоторых тестовых данных в таблицы я выполнил простой тест (см. Файлы ниже), но я не смог ничего извлечь из базы данных.

Когда я загружаю test-basic.php там написано «Подключен к базе данных. Выбранная база данных. Ничего не найдено =(«

Но я протестировал строку в phpMyAdmin (для базы данных ‘likeiwassaying’), и она вернула результаты

Я чувствую себя оооочень близко (и бьюсь над этим часами). Я что-то упускаю прямо у себя под носом?

Приветствуются любые предложения по устранению неполадок,

Джастин

config.php

 <?php
    $dbhost = 'localhost';
    $dbuser = 'root';
    $dbpassword = 'testpassword';
    $dbdatabase = 'likeiwassaying';
    $config_sitename = 'Cully Mail';    
    $config_author = 'jk';
    $config_basedir = 'http://localhost:8888/cullymail/';

    $db = mysql_connect($dbhost, $dbuser, $dbpassword);
    if (!$db) {
        die('Could not connect: ' . mysql_error());
    } else {
        echo 'Connected to db. ';
    }

    $db_selected = mysql_select_db($dbdatabase, $db);
    if (!$db_selected) {
        die ('Can't use: ' . mysql_error());
    } else {
        echo 'Selected database. ';
    }

    mysql_close($db);       

?>
  

test-basic.php

     require("config.php");

    function test() {
        $q = 'SELECT * FROM contacts;';

        $result = mysql_query($q);
        $numrows = mysql_num_rows($result);


        //If it is found (if any row comes back)...
        if($numrows == 0) {
            echo "Found nothing =(";
        } else {
            echo "found something";
        }

    }

    test();

?>
  

Комментарии:

1. Если что-то не так с вашими запросами MySQL, вы всегда можете умереть с сообщением об ошибке: mysql_query($q) or die(mysql_error()); чтобы посмотреть, что происходит.

Ответ №1:

Вы закрываете подключение к базе данных перед выполнением своей функции test() . Вы закрываете соединение в конце config.php , что означает, что к моменту определения функции в test-basic.php подключение к БД уже больше не существует, и дальнейшие запросы завершатся неудачей.

Обычно вам не нужно вызывать mysql_close() явно, если только у вас не возникнет необходимости досрочно восстановить ресурсы памяти. PHP закроет соединение, когда скрипт завершится.

 $db_selected = mysql_select_db($dbdatabase, $db);
if (!$db_selected) {
    die ('Can't use: ' . mysql_error());
} else {
    echo 'Selected database. ';
}

// Everything is good so far. you're ready to execute queries, but...

// Don't do this!!!
mysql_close($db);  
  

Комментарии:

1. Итак, я только что проверил старые версии файла, и, по-видимому, эта строка, должно быть, попала туда при каком-то моем устранении неполадок. Спасибо за основной ответ — давно не занимался PHP, но действительно хочу возродить этот проект. Большая помощь!