Присвоение возвращаемого значения new по ссылке не рекомендуется в - PullRequest
2 голосов
/ 19 марта 2011

Я новичок в PHP и играю с кодом, чтобы посмотреть, что я могу выучить / сделать. У меня есть простой маленький проект, где я подключаюсь к базе данных mysql и отображаю записи таблицы.

Когда я помещаю весь свой код в один файл, все работает гладко, как только я пытаюсь поместить кусок кода в отдельный PHP-файл и использую include или require_once, я получаю сообщение об ошибке. ссылка устарела в ... PEAR \ config.php yadda yadda

Я провел некоторое исследование и понимаю, что передача объекта по ссылке (& obj) больше не приемлема в PHP 5, это нормально, но нигде в моем коде нет амперсанда, и опять же, все работает хорошо, если все это в одном файле .php. Так что я полагаю, что я могу делать что-то не так с моими включениями или с чем-то еще.

Это файл, который «выполняет работу», которую я звоню с моей главной страницы с помощью require_once

include '/config.php';
// Open the database connection

$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');
mysql_select_db($dbname);

        //Define and run the query
        $query = "SELECT * FROM wp_posts";
    $result = mysql_query($query);

    echo mysql_error();

        //Close the db connection
    mysql_close();

    echo "<table><tr><td>Post Title</td><td>Post Status</td><td>Post Date</td></tr>";

        //Loop through result set and display data

        while($tdata=mysql_fetch_array($result))
        {
            echo "<tr><td>$tdata[post_title]</td><td> $tdata[post_status]</td><td> $tdata[post_date]</td></tr>";     // name class and mark will be printed with one line break
    }

        echo "</table>";

В любом случае, я знаю, что мой код не красив, я все еще пытаюсь все выяснить. Спасибо за любую помощь, вы можете предоставить.

Дополнительная информация: Хорошо, я знаю, что я полный нуб на этом материале и прошу прощения. Не могу совсем обернуть голову вокруг всего этого пока. Но вот дополнительная информация. Вот полный текст сообщения об ошибке, которое я получаю (ПРИМЕЧАНИЕ: мой код все еще выполняется, и моя таблица все еще отображает)

Не рекомендуется: Назначение возвращаемого значения new по ссылке не рекомендуется в C: \ xampp \ php \ PEAR \ Config.php в строке 80

Не рекомендуется: Назначение возвращаемого значения new по ссылке не рекомендуется в C: \ xampp \ php \ PEAR \ Config.php в строке 166

Не рекомендуется: Назначение возвращаемого значения new по ссылке не рекомендуется в C: \ xampp \ php \ PEAR \ Config \ Container.php в строке 111

Опять же, я использую netBeans в качестве своей IDE, поэтому в моем Netbeans я зашел в Tools-Options и перешел на PHP и установил C: \ xampp \ php \ PEAR в качестве пути глобального включения (что бы это ни значило, но тем не менее это показалось хорошей идеей).

Полагаю, если мой путь включения задан правильно (/ xampp / php ...), то почему я все еще получаю сообщение об ошибке. Хмм. Спасибо за вашу помощь, ребята.

Ответы [ 6 ]

1 голос
/ 23 ноября 2012

Откройте ваш config.php и перейдите к строке 89 и удалите & после =

из:

"$this->container =& new Config_Container('section', 'root');"

в:

"$this->container = new Config_Container('section', 'root');"

То же самое относится к строке 166.

1 голос
/ 19 марта 2011

Ваш путь включения может быть задан в неправильном порядке.

Сценарий, похоже, предпочитает каталог включения PEAR текущему рабочему каталогу.Есть несколько способов исправить это:

1.абсолютное использование включает

Например, в вашем случае:

include dirname(__FILE__) . 'config.php'; // pre-PHP 5.3
include __DIR__ . 'config.php'; // PHP 5.3

2.измените путь включения

Чтобы узнать больше об этом, см. эту страницу в документации php.net

1 голос
/ 19 марта 2011

Это сторонняя библиотека, которую вы используете, которая вызывает проблему, она устарела и использует такие вещи, как возврат по ссылке, которые больше не считаются хорошей практикой.Вы должны обновить библиотеку, о которой идет речь.Из того, что вы написали, я предполагаю, что это эта библиотека.http://pear.php.net/package/Config/redirected

Попробуйте запустить pear upgrade config из оболочки.

0 голосов
/ 20 мая 2013

У меня была похожая проблема. Решением является изменение имени вашего файла.config.php получает файл в папке pear, а не файл конфигурации.

0 голосов
/ 03 ноября 2012

это просто ошибка пакета груши, которая описывает проблему с назначением. так что мы можем нормально заменить назначение = & с = в данной строке ошибки. Это решит нашу проблему.

0 голосов
/ 24 июня 2011

Просто запустите C: \ xampp \ php \ pear-update.bat и перезапустите сервер Apache (в Windows Macchine).Для Linux Macchine следуйте инструкциям GordonM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...