- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Тренды маркетинга в 2024 году: мобильные продажи, углубленная аналитика и ИИ
Экспертная оценка Адмитад
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Хотел сделать простой чат, но написав код, столкнулся с проблемой что php не видит базу MySQL.
В браузере пишет no data base. В чем может быть проблема?
index.php
include_once 'startup.php';
include_once 'model.php';
// подготовка
startup();
// была отправка формы
if(!empty($_POST)) {
send_message($_POST['name'], $_POST['text2']);
header("location: index.php");
exit();
}
// получаем список сообщений
$messages = get_messages();
?>
<html><body>
<form action="index.php" method="post">
<input type="text" name="name" />
<input type="text" name="text2" />
<input type="submit" value="send" />
</form>
</body></html>
startup.php
// настройки подключения к БД
$hostname = 'localhost';
$username = 'root';
$password = '';
$dbName = 'test';
}
// языковая настройка
setlocale(LC_ALL, 'ru_RU.cp1251');
// подключение к БД
$connect = mysqli_connect($hostname, $username, $password) or die('no connect');
mysqli_query($connect, 'SET_NAMES cp1251');
mysqli_select_db($connect, $dbName) or die('No data base');
// открытие сессии
session_start();
model.php
function get_messages() {
$sql = "SELECT * FROM messages ORDER BY dt DESC";
$result = mysqli_query($sql);
if(!$result)
die(mysqli_error());
$n = mysqli_num_rows($result);
$arr = array();
for($i = 0; $i < $n; $i++) {
$row = mysqli_fetch_assoc($result)
$arr[] = $row;
}
return $arr;
}
function send_message($name, $text2) {
$name = trim($name);
$text = trim($text2);
if($name = "" || $text2 = "")
return;
$dt = date('Y-m-d H:i:s');
$sql = "INSERT INTO messages (dt, name, text2) VALUES ('$dt', '$name', '$text2')";
$result = mysqli_query($sql);
if(!$result)
die(mysqli_error());
}
Если написать простую проверку, то все ок, базу находит.
$host = "localhost";
$user = "root";
$password = "";
$db_name = "test";
$connect = mysqli_connect($host, $user, $password);
mysqli_select_db($connect, $db_name) or die('no data base');
if($connect == true){
echo 'ok';
}
else {
echo 'error';
}
Вы применяете синтаксис mysql к mysqli
Там есть отличия.
---------- Добавлено 17.03.2016 в 21:08 ----------
Почитайте как работать с mysqli http://phpclub.ru/detail/article/mysqli
У вас данные для подключения к БД за пределы функции не выходят:
т.е. после этого кода переменные будут не определены.
поэтмоу к БД у вас и не коннектиться. Вам или надо внутри функции эти переменные как глоба прописать, или как-то по-другому хранить эти настройки.
У вас данные для подключения к БД за пределы функции не выходят:
т.е. после этого кода переменные будут не определены.
поэтмоу к БД у вас и не коннектиться. Вам или надо внутри функции эти переменные как глоба прописать, или как-то по-другому хранить эти настройки.
Блин, точно! Скобку в конец кода передвинул, теперь php видит бд. Спасибо вам за ответ.
Правда возникла другая проблема, теперь денвер ругается на массив $arr
Parse error: syntax error, unexpected '$arr' (T_VARIABLE) , может кто знает, в чем ошибка?
Во-первых, покажите код полностью, лучше сделайте гист - https://gist.github.com/
Во-вторых, рекомендую, если позволяет компьютер - поставьте какую-нибудь IDE типа phpstorm - он вам вот такие ошибки будет еще до запуска скрипта показывать.
А так - скорее всего опять где-то скобку не закрыли или т.п.