Audes
@Audes

Не подключается база данных?

День добрый! Сразу хочу сказать, что полный ноль в этом деле: до этого мои простые сайты не нуждались в БД. Итак, я создал базу данных в MySQL консоли, но не понимаю, как подключить к сайту. mysqli_connect не возвращает значения. Сайт пока на локальном сервере (денвер), думаю, что должно работать.
P.S. Не через PHPMyAdmin, потому, что к нему, говорят, лучше не привыкать.
Upd
В таблице 2 поля: user_id и user_ip.
<?php
    $id; $ip = $_SERVER["REMOTE_ADDR"];
    $host = "localhost";
    $db = "db1";
    $charset = "utf-8";
    $dsn = "mysql:host=$host;dbname=$db;charset=$charset";
    $opt = array(
        PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
    );
    $user = "Admin";
    $pass = "Password";
    $pdo = new PDO($dsn,$user,$pass,$opt);
    $stmt = $pdo->query('SELECT * FROM users');
    while ($row = $stmt->fetch())
    {
        if ($row['user_ip'] == $ip) {
            $id = $row["user_id"];
            break;
        }
    }
    if (!$id) {
        $pdo->prepare("INSERT INTO users (user_ip) VALUES ($ip)");
    }
    $stmt = $pdo->query('SELECT * FROM users');
    while ($row = $stmt->fetch())
    {
        if ($row['user_ip'] == $ip) {
            $id = $row["user_id"];
            break;
        }
    }
    $pdo = null;
    include("header.html");
    echo $id . " " . $ip . "<br>"; //debug
    include("index.html");
    include("footer.html");
?>
  • Вопрос задан
  • 230 просмотров
Решения вопроса 1
@VZVZ
Reverse-Engineer, Software Developer, Architect
Для взаимодействия с MySQL из PHP, надо юзать mysqli.
Вот тут простейший пример чата с применением mysqli (выборка и добавление записей):
codeproject.com/Tips/1065669/How-To-Build-Web-Site...
Вообще статья про AJAX, но в начале там все делается как раз без AJAX, как и без прочих наворотов. В этом и изюминка.

> Не через PHPMyAdmin, потому, что к нему, говорят, лучше не привыкать.
Чушь говорят. Это вообще другое. phpMyAdmin - это средство для администрирования баз данных (прежде всего - создания и дизайна их). Это НЕ средство для программного подключения к ним.
Но для программного подключения, БД сперва нужно создать со всеми таблицами. phpMyAdmin здорово упрощает эту работу.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
edli007
@edli007
full stack, team lead
для начала не используйте mysqli_connect, как почему и вообще, про это писалось сотню раз.
Далее используйте PDO, а с ним у вас и проблем с конектом может уже не будет.
Ответ написан
@IceJOKER
Web/Android developer
php.net/manual/en/function.mysqli-connect.php
Не через PHPMyAdmin, потому, что к нему, говорят, лучше не привыкать. - чушь, с phpmyadmin работать удобнее, чем долбить консоль(конечно у каждого свои случаи для применения)
Ответ написан
Winsik
@Winsik
сис.админ, недопрограммист :)
Перепишите как то так :
php.net/manual/ru/pdo.query.php
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы