|
|
|
| Объясните мне пожалуйста, почему следующий код:
<?
mysql_connect();
mysql_select_db("test");
@mysql_query("create table w(r tinytext)");
mysql_query("insert into w(r) values ('ААААА')");
mysql_query("insert into w(r) values ('БББББ')");
mysql_query("insert into w(r) values ('ВВВВВ')");
$res=mysql_query("select * from w where r='ААААА'");
for($i=0;$i<mysql_num_rows($res);$i++)
{
$f=mysql_fetch_array($res);
echo "$f[r]<br>\n";
}
mysql_query("drop table w");
?>
|
выдает
Это глюк в MySQL или у меня что то со зрением :)? | |
|
|
|
|
|
|
|
для: Евгений Петров
(16.06.2005 в 00:07)
| | echo "$f[r]<br>\n";
Что такое f[r] и откуда взялось r? | |
|
|
|
|
|
|
|
для: XPraptor
(16.06.2005 в 10:54)
| | mysql_fetch_array возвращает ассоциативный массив $f, в качестве ключей которого используются имена столбцов таблицы, r - это имя столбца, получается $f[r]. | |
|
|
|
|
|
|
|
для: Евгений Петров
(16.06.2005 в 00:07)
| | А какая версия MySQL используется и под какой операционной системой? | |
|
|
|
|
|
|
|
для: cheops
(16.06.2005 в 12:01)
| | mysql-4.0.21. Windows XP Professional SP1 | |
|
|
|
|
|
|
|
для: Евгений Петров
(16.06.2005 в 12:58)
| | Хотя вообще говоря странно, почему выдаются все записи, так как если бы были проблемы с кирилицей - не выдавалось бы вообще ничего, а тут вываливается всё. Попробуйте выполнить этот запрос в различных клиентах - в консольном mysql или phpMyAdmin... результат меняется? | |
|
|
|
|
|
|
|
для: cheops
(16.06.2005 в 20:26)
| | Прошу прощение за свою неграмотность :). С этого момента можно чуть чуть подробнее? где найти консольный mysql и phpMyAdmin и как там выполнить запрос? Еще раз прошу прощение за свою неграмотность. | |
|
|
|
|
|
|
|
для: Евгений Петров
(16.06.2005 в 20:51)
| | Дело в том, что СУБД MySQL представляет собой сервер, как и к Web-серверу Apache, к нему могут обращаться большое число самых разнообразных клиентов. Один входит в состав дистрибутива MySQL и называется mysql.exe (его можно найти в каталоге C:/mysql/bin), его требуется запустить из Far или командной строки при помощи инструкции
появится приглашение
после которого можно вводить SQL-запросы, заканчивающиеся точкой запятой - об особенностях этого консольного клиента можно почитать в третьей главе справочного руководства MySQL
http://dev.mysql.com/doc/mysql/ru/connecting-disconnecting.html
http://dev.mysql.com/doc/mysql/ru/entering-queries.html
Кроме этого, на сайте MySQL вы можете свободно загрузить несколь графических клиентов (мне, например, нравится MySQL Control Center).
И наконец, если у вас имеется связка Apache+PHP+MySQL, вы можете установить у себя Web-интерфейс доступа к базе данных phpMyAdmin http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=189, который является стандартом де факто для доступа к базе данных на хостингах и входит в состав денвера. Свежую версию его можно загрузить по URL указанному в теме по ссылке выше. Этот клиент удобен тем, что он написан на PHP и если в нём запрос работает, а у вас нет - всегда можно сделать однозначный вывод о том, что проблема не в базе данных, а в PHP-коде, и наоборот, если phpMyAdmin выдаёт ошибку синтаксиса в SQL-запросе, проблема не в PHP-коде, а в SQL-запросе. | |
|
|
|
|
|
|
|
для: cheops
(16.06.2005 в 21:07)
| | У меня такое ощущение (большое), что я просто напросто не правильно установил MySQL, потому что запускал я его не так как было написано в учебнике. На данный момент он у меня вообще не запускается. Подскажите, пожалуйста или дайте ссылку, как его правильно установить и как его правильно запустить. (в моей книге нужно было запускать файл mysqld.exe, но он у меня не запускался и я методом научного тыка обнаружил, что запускается и работает mysqlв-max.exe). Заранее спасибо. | |
|
|
|
|
|
|
|
для: Евгений Петров
(16.06.2005 в 21:23)
| | Если у вас не Windows 98, то запускать MySQL в ручную уже не требуется. При установке MySQL устанавливается сервис, который автоматически стартует сервер MySQL при старте системы и выключает его при выключении компьютера. Посмотреть сервисы можно выбрав (Пуск | Настройка | Панель управления | Администрирование | Службы). Там должен быть сервис MySQL, если он имеется тип запуска должен быть Авто.
Тип запуска сменился относительно недавно и в книгах это не нашло ещё отражения. | |
|
|
|
|
|
|
|
для: cheops
(16.06.2005 в 21:30)
| | А почему он у меня тогда не запускается? Я пробовал вручную запустить процесс - тоже безрезультатно, говорит не удалось запустить MySQL на локальном компьютере. | |
|
|
|
|
|
|
|
для: Евгений Петров
(16.06.2005 в 21:34)
| | Посмотрите в свойствах на какой процесс он ссылается? | |
|
|
|
|
|
|
|
для: cheops
(16.06.2005 в 22:58)
| | Только что снес винду, поставил все заново, все работает отлично, но проблема не исчезла. В консольном mysql тоже самое, точнее буквы разобрать нельзя, но можно видеть, что записей больше чем одна :). Сейчас попробую ещё скачать phpMyAdmin и буду делать соответствующие выводы. | |
|
|
|
|
|
|
|
для: cheops
(16.06.2005 в 22:58)
| | И еще вопрос. Я когда скачивал php скачал еще какой то архив, в нем единственный файл на 30 метров.
Начинается примерно так:
+----------------------------------------------------------------------+
| PHP Version 5 |
+----------------------------------------------------------------------+
| Copyright (c) 1997-2004 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.0 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
| available through the world-wide-web at the following url: |
| http://www.php.net/license/3_0.txt. |
| If you did not receive a copy of the PHP license and are unable to |
| obtain it through the world-wide-web, please send a note to |
| license@php.net so we can mail you a copy immediately. |
+----------------------------------------------------------------------+
| Authors: Rasmus Lerdorf <rasmus@php.net> |
| Stig Bakken <ssb@php.net> |
| Jim Winstead <jimw@php.net> |
+----------------------------------------------------------------------+
|
не подскажите что с ним делать? И не phpMyAdmin ли это? | |
|
|
|
|
|
|
|
для: Евгений Петров
(17.06.2005 в 00:14)
| | А какое у него расширение? Нет, на phpMyAdmin это не похоже. | |
|
|
|
|
|
|
|
для: cheops
(17.06.2005 в 00:21)
| | Да это был точно не phpMyAdmin а расширения у него помоему вообще нет. Так вот я установил phpMyAdmin и к моему несчастью результат тот же. | |
|
|
|
|
|
|
|
для: Евгений Петров
(17.06.2005 в 01:22)
| | А не могли бы вы выложить эту злосчастную таблицу (если она не очень большая) - файлы находятся в каталоге data/имя_базы/ и совпадают с именем таблицы (их должно быть три, если используется таблица типа MyISAM) - тогда бы можно было отладить ситуацию на независимой машине. Уж больно случай интересный... | |
|
|
|
|
|
|
|
для: cheops
(17.06.2005 в 02:05)
| | Вот. | |
|
|
|
|
|
|
|
для: Евгений Петров
(17.06.2005 в 16:38)
| | Используется mysql-4.0.24. Подцепил данную таблицу - получил вменяемый результат - попробуйте переставить MySQL.
mysql> select * from w;
+-------+
| r |
+-------+
| ААААА |
| БББББ |
| ВВВВВ |
+-------+
3 rows in set (0.00 sec)
mysql> select * from w where r='ААААА';
+-------+
| r |
+-------+
| ААААА |
+-------+
1 row in set (0.00 sec)
|
| |
|
|
|
|
|
|
|
для: cheops
(17.06.2005 в 21:32)
| | Пробовал, не получается, может я как то не так устанавливаю или у меня в самой винде че то с локализацией? | |
|
|
|
|
|
|
|
для: Евгений Петров
(18.06.2005 в 00:36)
| | Скорее в MySQL, начиная с 4.0.24 появилась возможность выставлять кодировку по умолчанию, у меня в коре не диска С лежит конфигурационный файл my.ini следующего содержания
[mysqld]
# The TCP/IP Port the MySQL Server will listen on
port=3306
#Path to installation directory. All paths are usually resolved relative to this.
basedir="C:/mysql/"
#Path to the database root
datadir="C:/mysql/Data/"
# The default character set that will be used when a new schema or table is
# created and no character set is defined
default-character-set=cp1251
|
но последняя директива действует похоже только начиная с 4.0.24. | |
|
|
|
|
|
|
|
для: cheops
(18.06.2005 в 02:29)
| | А что вы мне в этом случае можете посоветовать? Поставить новую версию? | |
|
|
|
|
|
|
|
для: Евгений Петров
(18.06.2005 в 16:07)
| | Ну или как минимум переставьте текущую... (я что-то не припомню такого поведения в более старых версиях - что-то тут не чисто). | |
|
|
|
|
|
|
|
для: cheops
(18.06.2005 в 17:10)
| | Не подскажите как её правильно установить. Там по моему надо какой то файл (mysql.dll) если мне память не изменяет откуда-то поместить в папку system32. Проще говоря где можно найти руководство по установке? | |
|
|
|
|
|
|
|
для: cheops
(18.06.2005 в 17:10)
| | А где можно скачать последнюю версию. Я зашел на сайт [url]mysql.com[/url] после непродолжительных поисков я зашел на страницу http://dev.mysql.com/downloads/mysql/4.1.html и ужаснулся! Подскажите пожалуйста что из этой страницы мне нужно скачать (ОС Windows XP Professional). | |
|
|
|
|
|
|
|
для: Евгений Петров
(18.06.2005 в 18:59)
| | Нет это 4.1, нужно идти на 4.0 http://dev.mysql.com/downloads/mysql/4.0.html - идите в середину и ищите строку "Windows downloads" -> Windows (x86) -> Pick a mirror | |
|
|
|
|
|
|
|
для: cheops
(18.06.2005 в 20:59)
| | А почему бы не скачать 4.1? Она хуже? | |
|
|
|
|
|
|
|
для: Евгений Петров
(18.06.2005 в 21:00)
| | Вчера скачал mysql 4.024 (до 3 ночи качал :) ). Сегодня слил винду, поставил все заново и что вы думаете? Не работает!!! Сервис не запускается. Я думал с ума сойду. Я обратил внимание что в папке "C:\WINDOWS" не было файла my.ini, в связи с чем я создал его собственноручно, поместив в него информацию из вашего my.ini. Вопреки всем моим ожиданиям mysql запустился, а ГЛАВНОЕ все работает на запрос 'ААААА' выдает 'ААААА'. Поэтому огромное вам спасибо cheops. Похоже дело было все таки в версии mysql.
P.S И все таки мне стало интересно:
1) Неужели в версии 4.024 нужно создавать my.ini вручную?
2) Что плохого в версиях 4.1? | |
|
|
|
|
|
|
|
для: Евгений Петров
(19.06.2005 в 13:50)
| | 1) да, если он необходим.
2) База хорошая, но подглючивает русский текст (выводятся ?????? вместо русских букв) при работе со базами, оставшимися в наследство от старых версий, подробности по ссылке http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=4467 - там же указано, как эту проблему решать, но всё равно остаются проблемы при переносе старых баз. | |
|
|
|
|
|
|
|
для: cheops
(17.06.2005 в 02:05)
| | Теперь я просто в шоке! Я решил занести в таблицу подобным образом весь алфавит ('ГГГГГ','ДДДДД',...,'ЯЯЯЯЯ') и начал по очереди выбирать каждую запись, вот что у меня получилось:
+--------------------+
| запрос | результат |
+--------+-----------+
| ААААА: | ААААА |
| | БББББ |
| | ВВВВВ |
| | ГГГГГ |
+--------+-----------+
| БББББ: | ААААА |
| | БББББ |
| | ВВВВВ |
| | ГГГГГ |
+--------+-----------+
| ВВВВВ: | ААААА |
| | БББББ |
| | ВВВВВ |
| | ГГГГГ |
+--------+-----------+
| ГГГГГ: | ААААА |
| | БББББ |
| | ВВВВВ |
| | ГГГГГ |
+--------+-----------+
| ДДДДД: | ДДДДД |
| | ЖЖЖЖЖ |
+--------+-----------+
| ЕЕЕЕЕ: | ЕЕЕЕЕ |
+--------+-----------+
| ЁЁЁЁЁ: | ЁЁЁЁЁ |
+--------+-----------+
| ЖЖЖЖЖ: | ДДДДД |
| | ЖЖЖЖЖ |
+--------+-----------+
| ЗЗЗЗЗ: | ЗЗЗЗЗ |
+--------+-----------+
| ИИИИИ: | ИИИИИ |
| | ЙЙЙЙЙ |
| | ККККК |
| | ЛЛЛЛЛ |
+--------+-----------+
| ЙЙЙЙЙ: | ИИИИИ |
| | ЙЙЙЙЙ |
| | ККККК |
| | ЛЛЛЛЛ |
+--------+-----------+
| ККККК: | ИИИИИ |
| | ЙЙЙЙЙ |
| | ККККК |
| | ЛЛЛЛЛ |
+--------+-----------+
| ЛЛЛЛЛ: | ИИИИИ |
| | ЙЙЙЙЙ |
| | ККККК |
| | ЛЛЛЛЛ |
+--------+-----------+
| МММММ: | МММММ |
| | ННННН |
| | ООООО |
| | ППППП |
+--------+-----------+
| ННННН: | МММММ |
| | ННННН |
| | ООООО |
| | ППППП |
+--------+-----------+
| ООООО: | МММММ |
| | ННННН |
| | ООООО |
| | ППППП |
+--------+-----------+
| ППППП: | МММММ |
| | ННННН |
| | ООООО |
| | ППППП |
+--------+-----------+
| РРРРР: | РРРРР |
+--------+-----------+
| ССССС: | ССССС |
+--------+-----------+
| ТТТТТ: | ТТТТТ |
| | УУУУУ |
| | ФФФФФ |
| | ХХХХХ |
+--------+-----------+
| УУУУУ: | ТТТТТ |
| | УУУУУ |
| | ФФФФФ |
| | ХХХХХ |
+--------+-----------+
| ФФФФФ: | ТТТТТ |
| | УУУУУ |
| | ФФФФФ |
| | ХХХХХ |
+--------+-----------+
| ХХХХХ: | ТТТТТ |
| | УУУУУ |
| | ФФФФФ |
| | ХХХХХ |
+--------+-----------+
| ЦЦЦЦЦ: | ЦЦЦЦЦ |
+--------+-----------+
| ЧЧЧЧЧ: | ЧЧЧЧЧ |
+--------+-----------+
| ШШШШШ: | ШШШШШ |
+--------+-----------+
| ЩЩЩЩЩ: | ЩЩЩЩЩ |
| | ЪЪЪЪЪ |
| | ЫЫЫЫЫ |
+--------+-----------+
| ЪЪЪЪЪ: | ЩЩЩЩЩ |
| | ЪЪЪЪЪ |
| | ЫЫЫЫЫ |
+--------+-----------+
| ЫЫЫЫЫ: | ЩЩЩЩЩ |
| | ЪЪЪЪЪ |
| | ЫЫЫЫЫ |
+--------+-----------+
| ЬЬЬЬЬ: | ЬЬЬЬЬ |
| | ЭЭЭЭЭ |
+--------+-----------+
| ЭЭЭЭЭ: | ЬЬЬЬЬ |
| | ЭЭЭЭЭ |
+--------+-----------+
| ЮЮЮЮЮ: | ЮЮЮЮЮ |
+--------+-----------+
| ЯЯЯЯЯ: | ЯЯЯЯЯ |
+--------+-----------+
|
| |
|
|
|
|
|
|
|
для: Евгений Петров
(16.06.2005 в 21:23)
| | Если сервиса нет, то его можно инсталлировать при помощи команд, приведённых в конце темы http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=455 | |
|
|
|