1

Тема: Простий SQL запит

Добрий день.

Буквально сьогодні почав вивчати MySQL по книжці HeadFirst (досить проста, але багато лишнього текту).
Одне з завдань полягає у тому, щоб створити невеликий php-сценарій, щоб підключитися до phpMyAdmin. Проблема полягає в тому, що в мене phpMyAdmin розпакований не прямо в localhost, а в localhost/phpMyAdmin.
Відповідно намагаюсь підключитись та виконати запит таким чином:

Приклад
$dbc = mysqli_connect("localhost/phpMyAdmin", "<user>", "<password>", "aliendatabase") 
            or die("Помилка в зєднанні з MySQL сервером " . mysqli_connect_error());

$query = "INSERT INTO alien_abduction ( fang_spotted, email ) VALUES ( $fang_spotted, $email );"; 

$result = mysqli_query($dbc, $query) or die("Помилка при виконанні запиту до бази даних!");

За умовою, що $fang_spotted та $email попередньо задані значення.

В результаті ось такий Error:

Прихований текст

http://i61.tinypic.com/ioq2wj.png

База (aliendatabase) вже створена, таблиця (alien_abduction) також створена. Навіть один запис є.

Прихований текст

http://i58.tinypic.com/2cdg6ir.png

Як вже тільки я не пробував змінювати адресу, помилка не змінювалась:

Прихований текст
127.0.0.1/phpMyAdmin
127.0.1.0/phpMyAdmin
localhost/phpMyAdmin/ (в кінці доданий слеш "/")
http://localhost/phpMyAdmin
localhost\\phpMyAdmin
localhost//phpMyAdmin
phpMyAdmin
localhost (phpMyAdmin знаходився в localhost/phpMyAdmin)

P.S. Читав в документації, що якщо за замовчуванням нічого не вказано, то стандартно конектить до localhost (щось типу такого).
P.S.S. PHP я, можна сказати, взагалі не знаю, тому шукав приклади, але не вийшло.

Єдиний варінт коли запрацювало, це коли я розархівував phpMyAdmin в кореневу папку (html) та просто залишив лапки пустими, але такий варінт, мені нажаль не підходить.

2 Востаннє редагувалося koala (01.08.2014 15:13:17)

Re: Простий SQL запит

phpMyAdmin - це не СУБД, а її інтерфейс, написаний на PHP (підказує К.О.) Вам треба з базою mySQL з'єднуватися. Пусті лапки - синонім localhost.

3

Re: Простий SQL запит

koala написав:

phpMyAdmin - це не БД, а її інтерфейс, написаний на PHP (підказує К.О.) Вам треба з базою mySQL з'єднуватися. Пусті лапки - синонім localhost.

Ну це зрозуміло. Я не правильно виразився, в мене в /var/www/html є папка phpMyAdmin. В браузері конектюсь за адресою localhost (http://localhost/) далі бачу вибір між моїми папками та папкою phpMyAdmin.

Можливо я щось не так зрозумів?

4 Востаннє редагувалося koala (01.08.2014 15:17:59)

Re: Простий SQL запит

В браузері ви не конектитеся, а відкриваєте сторінку. Відкривайте одразу http://localhost/phpMyAdmin.
А що ви намагалися через mysqli робити?

5 Востаннє редагувалося koala (01.08.2014 15:24:28)

Re: Простий SQL запит

На пальцях: у вас є сервер. Умовно називатиму його server, хоча може бути і localhost, і example.com, і 127.0.0.1, і 192.168.10.10. На сервері підняті веб-сервер, наприклад, на порті 80 і MySQL на порті 3306: server:80 і server:3306. Веб-сервер, отримавши запит (http://server/phpMyAdmin, скажімо), за своїми налаштуваннями або відмовляє, або завантажує певний файл як є, або запускає іншу програму, в цьому випадку - php. А вже php з'єднується з портом 3306 функцією mysqli_connect. Але MySQL гадки не має, чи це phpMyAdmin питає, чи хтось інший: він бачить запит на порті server:3306 і все. Ще питання?

6

Re: Простий SQL запит

koala написав:

В браузері ви не конектитеся, а відкриваєте сторінку. Відкривайте одразу http://localhost/phpMyAdmin.
А що ви намагалися через mysqli робити?

В браузері я спочатку відкриваю сторінку localhost, далі вибираю phpMyAdmin

Прихований текст

http://i57.tinypic.com/nmzurq.png

Що я хочу зробити через mysqli - підконектитися до БД та виконати запит.

Прихований текст
<?php
        $fang_spotted = $_POST['fangspotted'];
        $email = $_POST['email'];

        $dbc = mysqli_connect("localhost/phpMyAdmin", "<user>", "<password>", "aliendatabase") 
            or die("Помилка в зєднанні з MySQL сервером " . mysqli_connect_error());

        $query = "INSERT INTO alien_abduction ( fang_spotted, email ) VALUES ( $fang_spotted, $email );"; 

        $result = mysqli_query($dbc, $query) or die("Помилка при виконанні запиту до бази даних!");
?>

7

Re: Простий SQL запит

Все, дякую. Проблема вирішена.
Чесно кажучи не знаю яким чином, але я просто залишив пусті лапки. Та замінив місцями стічки в php-сценарію.