Написал по видео уроку функции, которые подключаются к базе данных и выводят данные на сайт, но выводит ошибку: Fatal error: Call to a member function close() on a non-object in Z:\home\site\www\functions\connect.php on line 10. PHP: <?php $mysqli = false; function connectDB () { global $mysqli; $mysqli = new mysqli("localhost", "root", "","news"); $mysqli->query("SET NAMES 'utf-8'"); } function closeDB () { global $mysquli; $mysqli->close (); } ?>
Собсна, вся суть видеоуроков. Научился печатать, но не понимать то, что делаешь. Начнем с того, что выкинь видеоуроки. Далее. Ты попробовал перевести ошибку, чтобы понять ее смысл? Третье. Почему бы не передавать с closeDB твое $mysqli в виде параметра? Четвертое. Ты точно пошагово понимаешь, что происходит в твоем коде?
Есть вероятность, что переменная $mysqli у тебя где-то переопределяется. Либо нарушен порядок вызовов был. Но я ставлю на первое. Вообще, глобалки плодить - не лучшая идея. Лучше завести себе хранилище в виде статичного класса.
У меня возникла, другая проблема. Теперь выдает ошибку: Warning: mysql_fetch_array() expects parameter 1 to be resource, null given in Z:\home\site\www\functions\functions.php on line 12 Как исправить эту ошибку? Я понимаю, что это за ошибка. У меня не получается исправить.
Вы в проекте используете mysqli_, а тут ошибка пришла от mysql_... Ошиблись расширением немного. Чуть внимательнее надо быть.
Я решил все таки выкинуть видео уроки и это был мой самый умный поступок, написал с нуля сам и все работает, почти. У меня вместо данных из поля intro-text выводит id, можешь помочь? PHP: <?php $connect = mysql_connect(localhost, root, ''); $select_db = mysql_select_db('news'); $select = mysql_query("SELECT * FROM news"); while($result = mysql_fetch_array($select)) { echo'<table> <tr> <th><img src="./images/news/',$result[id],'.jpg" class="newsimg"></th> <th> <h1> <font color="orange" > ',$result[title],' </h1></font> <p class="stroke"> ',$result[intro-text],' </p> </th> </tr> </table> <hr noshade class="line2">'; } ?>
var_dump($result); в теле цикла сделай, погляди, что у тебя в само результате. Быть может в базе данные сохранены неправильно изначально. Далее, уходи от использования mysql_ расширения, переключайся на mysqli_. Как минимум потому, что код с mysql_ не будет работать в современных версиях PHP. Как максимум, потому что mysql_ имеет кучу проблем, включая проблемы с безопасностью.
Если я правильно понимаю то, что такое ключ, то без кавычек, потому что перестает работать и выдает ошибку.
Какую? Если что, я про то, что $result[title] - так писать нельзя, надо $result['title'] --- Добавлено --- По-хорошему пхп уже должен был начать ругаться. У вас вывод ошибок включен?
Так писать какое-то время было можно (не знаю на сколько долго и выводились ли при этом ворнинги), когда пых видел $result[title], то сначала пытался найти константу title, а затем преобразовывал title в строку. В итоге всё работало. В любом случае, различных неявных преобразований лучше избегать, даже если php на это не ругается, хотя бы потому, что от таких вещей авторы языка стараются уходить и то что раньше прокатывало, завтра может начать падать с ошибкой.
Да у него просто опечатка в коде была, я один что ли заметил ? PHP: global $mysquli; Маскьюли такие маскьюли
Да, я в курсе, но, емнип, при этом если не ворнинг, то нотис швырялся как минимум и уже давно. --- Добавлено --- почитать документацию, понять, в чем разница, переписать код с одного адаптера на другой. Прям вот переключать ничего нигде не надо. И то и то входит в стандартныц дистриб пыхи. Ну...входило. С версии 7+ адаптер mysql_ выпилен начисто. С версии 5.3, плюсминус, он объявлен устаревшим и кидает ворнинги. И, раз пошла такая пьянка, выкиньте свой сыплющий песком, мертвый уже лет 5 минимум, денвер с php5.1.2 и поставьте себе если уж не виртуалку с линухой и нормальным серверным окружением, то, хотя бы, OpenServer, в котором есть php5.6 и 7+
Начальный Уровень 1)Разработка веб-приложений с помощью PHP и MySQL», 5-е издание, Люк Веллинг и Лора Томсон(2017) - пока только на английском, перевод будет в ближайшее время 2)Д.Скляр «PHP 7. Руководство по созданию интерактивных веб-сайтов»(2017) Углубленное Изучение 3)М.Зандстра «PHP. Объекты, шаблоны и методики программирования»(2016) 4)Д.Котеров, И. Симдянов «PHP 7. Наиболее полное руководство»(2016)-есть