Задавайте вопросы, мы ответим
Вы не зашли.
Всем приятного времени суток.
Решил изучить MySQL и понятное дело сразу возникают вопросы , с вашего разрешения попрошу добрых людей подсказать в чем ошибка или просто оптимизировать коды. Уж будьте снисходительны к новичку. Я так подозреваю у меня вопросов будет много, поэтому создам свою ветку.
Собственно вопрос такой. (нет соединения с базой данных) Решил на страничке http://fh38090a.bget.ru/My_pages/coment.php реализовать коментарий с использованием базы данных MySQL.
Правильно ли мой подход при построении коментария на страничке.
1. на страничке реализуем форму (Имя,идентификатор_коментария, коментарий, ) .( Назвал coment.php)
2. отдельно обработчик формы ( я назвал my_coment.php)
Здесь обращаюсь к базе данных для внесения коментария
mysqli = new mysqli("localhost", "имя пользователя", "пароль", "имя таблицы")
mysqli->query("INSERT INTO `My_comments` (`name`, `page_id`, `text_comment`) VALUES ('$name', '$page_id', '$text_comment')")
3. На страничке, где форма ( coment.php) подключаюсь к базе данных MySQL
mysqli = new mysqli("localhost", "имя пользователя", "пароль", "имя таблицы")
что бы вывести коментарии какие есть в таблице(хотя там нету ни одного коментария пока)
....
но дальше не зашел, так как выпадает сообщение "Не удалось подключиться к MySQL: (1044) Access denied for user 'fh38090a_a'@'localhost' to database 'My_comments' "
что я не так сделал?
И , кстати как понимать выражение mysqli->query, конкретно что значит знак ->
Неактивен
mysqli = new mysqli("localhost", "имя пользователя", "пароль", "имя таблицы")
вместо "имя таблицы" нужно "имя базы данных"
Неактивен
Infinity написал:
И , кстати как понимать выражение mysqli->query, конкретно что значит знак ->
Это оператор, использующийся для доступа к методам объектов в PHP.
Почитайте Энди Харрис "PHP/MySQL для начинающих".
Неактивен
Правила говорят
mysqli = new mysqli("localhost", "user", "password", "database");
у меня написано
$mysqli = new mysqli("localhost", "fh38090a_a", "7пароль7", "fh38090a_a");
Насервере в правилах указано: Имя пользователя совпадает с именем БД, так что кажется я правильно написал.
Книгу найду обязательно почитаю
Отредактированно Infinity (09.02.2014 03:12:57)
Неактивен
Судя по ошибке "Не удалось подключиться к MySQL: (1044) Access denied for user 'fh38090a_a'@'localhost' to database 'My_comments' "
вместо имени базы "fh38090a_a" вы использовали имя таблицы "My_comments"
Неактивен
Ок сижу ковыряюсь
Неактивен
Тянет дед репку тянет никак не вытянет . Тото и я сижу, то с одной стороны зайду, то с другой а репкаMySqL какая-то круглая и тяжелая.
Книгу Энди Харрис "PHP/MySQL для начинающих" нашел в Дежавю формате - жирная,... почти 400 страниц - читать долго, быть может работу стоит вести паралельно, немного книгу читать и страничку ваять.
Нашел несколько Инет страничек про MySQL - но они заумно пишут не могу нить вцепить. Как бы понятно, но ....
Тогда я понемногу буду вопросы закидать может за месячишко придет свет. Ведь наверняка MySQL не сложнее Html. Html я на 5 с минусом знаю
можно я начну с простого а кто свободен ответить буду благодарен.
Вопрос 1. Обновление. Встретил информацию "Если вы работаете с сервером MySQL 4.1.3 или более поздних версий, настоятельно рекомендуется использовать расширение mysqli. "
стоит ли обращать внимание как писать коды новые или старые , к примеру читать книгу для новичков Энди Харриса, а окажется что те коды уже не работают?
Вопрос 2. PhpAdmin.На форуме встретил, что не стоит пользоваться. Я для начала на бесплатном хостинге тренируюсь, есть там админ, ну присматриваюсь, просто новая вещь в чем его недостатки?
Неактивен
Вопрос. Текст на русском Чтобы работать с базой данных, наверное это надо для себя четко понимать, что этим хотят сказать: "
Что такое API?
Интерфейс программирования приложений, или API, определяет набор классов, методов, функций и переменных, которые можно вызывать из вашего приложения для выполнения поставленных задач. Применительно к PHP приложениям, которые должны взаимодействовать с базами данных, необходимые для этого API, как правило, представлены PHP расширениями.
API могут быть процедурными или объектно-ориентированными. При использовании процедурных API вы вызываете функции для выполнения каких-либо операций, а в случае объектно-ориентированных вы инстанцируете классы и затем вызываете методы созданных объектов. Второй подход, обычно, предпочтительнее, так как он более современный и способствует написанию более организованного кода. "
Неактивен
Infinity написал:
Вопрос 1. Обновление. Встретил информацию "Если вы работаете с сервером MySQL 4.1.3 или более поздних версий, настоятельно рекомендуется использовать расширение mysqli. "
стоит ли обращать внимание как писать коды новые или старые , к примеру читать книгу для новичков Энди Харриса, а окажется что те коды уже не работают?
Посмотрите эту статью
PHP: критика перехода с оригинального API MySQL на mysqli и PDO
Infinity написал:
Вопрос 2. PhpAdmin.На форуме встретил, что не стоит пользоваться. Я для начала на бесплатном хостинге тренируюсь, есть там админ, ну присматриваюсь, просто новая вещь в чем его недостатки?
Свои настройки кодировок, длины запроса, таймаута, пароля и т.д. Не все очевидны. столкнувшись с ошибкой придется определять то ли это в mysql, то ли пхпадмин подгадил.
Лучше пользоваться родными клиентами, которые предлагает MySQL
http://dev.mysql.com/downloads/tools/
Неактивен
Кстати, раз вы mysql изучаете с php, то вам очень полезна будет статья Удобные функции PHP для работы с MySQL
да и прочие на http://webew.ru/mysql/ (частично пересекаются с теми, что на этом сайте, но есть ряд имеющих отношение к mysql в php)
Неактивен
Статьи почти понятны. Но немного надо определится с грамматикой кодов. Я решил писать страничку используя html, php и ...+ MySql - коды
Я пока теряюсь в розграничении гда php, а где MySql- коды,
к примеру
или же это как раз и есть наш АРI, к которому надо привыкнуть и понимать, т.е. это комплекс php и MySql вместе?
Неактивен
Что бы уж совсем просто. Сама идея базы данных, как бы проста.
1. Пользователь через форму ввел данные.
2. Дальше вот база данных "Имя", должно быть там файлик с упорядоченными данными.
3. Вот команда вставить INSERT данные.
Вот команда извлечь SELECT данные.
4. Данные, понятно, какие хочешь могут быть; цыфра, текст...
5. Вывел данные на страничку сайта.
Все просто, а наворотили, сразу и не поймешь
Неактивен
Infinity написал:
Все просто, а наворотили, сразу и не поймешь
Рад, что вы разобрались
Неактивен
Возвращаясь к моей цели "Коментарии"
А вообще путь, что бы четче понимать, что я делаю, т.е. алгоритм.
1. Пользователь вводит в форме текст --- textarea name="text"
2. С формы передается в php-обработчик формы значение --- "text"
3. php принимает, присваивает новую переменную --- $text = $_POST["text"]
4. Эту переменную надо положить в базу данных, это уже комбинация php и MySql (он же АРI ) --- $mysqli->query("INSERT...VALUES ...$text.." )
5. Если есть данные коментариев, надо извлечь из базы банных
6. Вывод на страничку php код --- print ($text2)
Должны быть правильные рассуждения с грамматикой пока туго
Отредактированно Infinity (12.02.2014 15:45:31)
Неактивен
Не, и красное и синее это php код.
Неактивен
А вот так правильно, да?
Неактивен
query это точно php rод, а вот про select .. можно сказать, что это:
1. mysql код - в том смысле что эту команду будет выполнять сервер MySQL
2. php код, так как это всего лишь текстовая строка с скрипте php.
Неактивен
От йолы , думал php код это все что со знаком доллара $, а query - это запрос MySql,
ок значит правильно будет вот так )
Неактивен
Со знака $ начинаются переменные в php.
Называйте все, что в файле .php кодом php.
Неактивен
vasya написал:
2. php код, так как это всего лишь текстовая строка с (здесь наверное *в) скрипте php.
то есть , даже так
А что же тогда, конкретно, MySql?
Нашел, цитата: "MySQL – это программа-сервер, постоянно работающая на компьютере. Клиентские программы (например, сценарии) посылают ей специальные запросы через механизм сокетов (то есть при помощи сетевых средств), она их обрабатывает и запоминает результат. Затем, также по специальному запросу клиента, весь этот результат или его часть передается обратно. "
Сказано, как "программа-сервер" - программа это буковки, коды; сервер -это железяки.
"Клиентские программы (например, сценарии)" - это мои php-коды
запросы через механизм сокетов - это вообще електрические цепи, передача цифрового сигнала через разъемчики )
-А по 'русски', это что? Отдельно стоящий сервер со своими файлами, куда обращаются мои php-коды
Тогда, к примеру, вот это все это чиcтый php c запросами к "Чему то там" ( базе данных MySQl )
if (!$mysqli->query("DROP TABLE IF EXISTS test") ||
!$mysqli->query("CREATE TABLE test(id INT, label CHAR(1))") ||
!$mysqli->query("INSERT INTO test(id, label) VALUES (1, 'a')")) {
echo "Не удалось создать таблицу: (" . $mysqli->errno . ") " . $mysqli->error;
ведь правильно?
Отредактированно Infinity (12.02.2014 15:42:07)
Неактивен
Эх, на работу пора (
Пойду чайку попью
Отредактированно Infinity (12.02.2014 16:05:08)
Неактивен
Infinity написал:
Сказано, как "программа-сервер" - программа это буковки, коды; сервер -это железяки.
Например, лист бывает бумажный формата А4, а бывает на дереве дубовый. Так же и сервер это не только железо.
Погуглите "клиент-серверная архитектура".
Infinity написал:
Тогда, к примеру, вот это все это чиcтый php c запросами к "Чему то там" ( базе данных MySQl )
if (!$mysqli->query("DROP TABLE IF EXISTS test") ||
!$mysqli->query("CREATE TABLE test(id INT, label CHAR(1))") ||
!$mysqli->query("INSERT INTO test(id, label) VALUES (1, 'a')")) {
echo "Не удалось создать таблицу: (" . $mysqli->errno . ") " . $mysqli->error;
Да.
Неактивен
Сначала был день первый
Чтобы сказать на страничке «-Привет!»,
Достаточно написать тег <p>-Привет! <-p>
Но чтобы сказать «-Привет» через окошко комментария
Надо понять, что такое функция, процедура, обьектно-ориентированное программирование , класс, свойства и методы и … тому подобные красивые фразы: интерфейс программирования приложений, или API, коннектор, драйвер … Енштейн
Если создавать страничку сайта на php + MySql, то сайт php.net как бы задает правила написания страничек в частности сказано:
http://www.php.net/manual/ru/mysqli.overview.php
Если вы работаете с сервером MySQL 4.1.3 или более поздних версий, настоятельно рекомендуется использовать расширение mysqli.
Дальше по тексту
http://www.php.net/manual/ru/mysqli.qui … erface.php
Цитата:«Расширение mysqli предоставляет двойной интерфейс программисту.
Поддерживаются как процедурная, так и объектно-ориентированная парадигмы программирования.
……
Примеры в этом руководстве будут написаны в объектном стиле в виду того, что объектному подходу отдавалось предпочтение при создании документации.»
Хотелось бы понять, в чем принципиальное отличие между процедурным стилем программирования и объектно-ориентированным стилем программирования на примере.
Книга (php.net) говорит:
«API могут быть процедурными или объектно-ориентированными.
При использовании процедурных API вы вызываете функции для выполнения каких-либо операций,
а в случае объектно-ориентированных вы инсталлируете классы и затем вызываете методы созданных объектов. Второй подход, обычно, предпочтительнее, так как он более современный и способствует написанию более организованного кода. »
Отредактированно Infinity (19.02.2014 15:05:03)
Неактивен
Структура (как себе представляю; что объект - таблица это еще бабка надвое гадала )
Неактивен