В общем дома на локалхосте (php 5.0.5, mysql 5.0.15) писал сайт. С базой работал через mysqli. Код (Text): $mysqli = new Mysqli ($sqladdres, $sqluser, $sqlpwd, $sqlbase, $sqlport); $result = $mysqli->query("fvfvf")->fetch_array(); Все у меня работало. Пришло время заливать сайт на хостинг. Но тут наткнулся на подводный камень - не соединяет с бд. Спросил в саппорте в чем дело, они сказали, что mysqli поддерживается. Коннект с базой есть через обычный mysql_connect. Выдает куча ошибок, начиная с соединения. Где-то нашел информацию, что: Код (Text): $mysqli = @ new Mysqli ($sqladd, $sqluser, $sqlpwd, $sqlbase, $sqlport); После этого с базой соединилось, но выдавало все равно множество ошибок (все одного типа - no fetch_array (даже на $mysqli->close(). В общем перед всеми объектами поставил знак @ - ошибки пропали, однако, страница пустая (я не обратил внимание на это, т.к база пустая). Пошел дальше, в модераторскую, подправил так же. Но там уже идет запрос на сверку логина/пароля. Тут я понял, что из mysql вообще ничего не выводится. Чего только не пробовал - не работает и все. Если убрать знак @ везде, то страница будет в ошибках, со знаком ничего не работает. Я знаю, что я ламер. Подскажите, в чем проблема?
ошибки раскомментарьте и вставьте проверку на соединение после собственно соединения. приведите оригинальное сообщение об ошибке. проверьте параметры подключения. p.s. (мысли вслух) народ, до чего же нас люди боятся, если в каждом втором запросе появляется "Я знаю, что я ламер. Подскажите, в чем проблема?". только ногами не бейте. мы такие страшные, да?
Я еще вчера был уверен на 90%, что будут проблемы с хостингом и сайтом в этом плане. Вот какую ошибку выдает скрипт, если перед каждым объектом @ и прописаны die На этой строке находится PHP: <? $rezult = @ $mysqli->query("SELECT `id` FROM `bb` WHERE `ip`='$ip2long' AND `kolvo`='5'") or die($mysqli->error); ?> Таблица пустая (на локалхосте все работает, только без @). Если без знаков @ (то есть та версия, которая работает у меня дома), то на хостинге выдает следующее PHP: <? $mysqli = new Mysqli ($sqladd, $sqluser, $sqlpwd, $sqlbase, $sqlport); $mysqli->query("SET NAMES 'cp1251'"); $result = $mysqli->query("SELECT `id` FROM `bb` WHERE `ip`='$ip2long' AND `kolvo`='5'")->fetch_array(); ?> Если die около запросов нет, то должна вывестить форма, независимо от соединения с базой (если не произошло крит. ошибки) но её нет, как будто стоит die.
если я правильно понимаю, то данное сообщение говорит о том, что вы пытаетесь зайти под рутом: я надеюсь, что вы не меняете сообщения об ошибках перед тем, как запостить их здесь...
Для форума я поменял адреса к файлам и информацию, относящуюся к бд (логины в том числе) в ошибках и коде. В ошибке мой логин, я его поменял на root.
Kreker А вы не пробовали прочитать, почему у вас ничего не работает. Или читать сообщения об ошибках не путь истинных самураев?
Если я написал, что я-ламер, это не значет, что я способен подключиться к хостеру через рут Ошибки читать умею, правда не очень внимательно. Обращаюсь на форум, когда уже потратил часов 5, обыскав инфу об ошибках. Вот моя и невнимательность подвела - когда копировал данные с хостера (они начинаются с пробелом), последняя строка - имя бд. Вот скопировал, да не обратил внимания (а когда обратил - поменял на локалхосте, а на сервак забыл залить, и проверял конфиг тоже на локале, отсюда и начал искать другие причины) При выводе на сайте ошибка переносилась так, что пробела не было видно. Невнимательность как всегда подвела, что на экзаменах помню подводила, что тут Всем спасибо за поддержку и гневную критику Целый день потерял из-за пустяка. Поэтому и ламер