PDA

Просмотр полной версии : При попытке прочесть данные появляется ошибка!


Flesh5
16.10.2004, 16:36
Прошу помощи, ни как не могу понять почему происходит данная ошибка:
<?php
$DBName = "test";
$HostName = "localhost";
$UserName = "root";
$Password = "";

if(!mysql_connect($HostName,$UserName,$Password)) {
echo "Не могу соединиться с базой".DBName."!<br>";
echo mysql_error();
exit;
}
mysql_select_db(DBName);

// Создаем таблицу t. Если такая таблица уже есть,
// сообщение об ошибке будет подавлено, т.к.
// используется "@"
@mysql_query("create table t(id int,a text)");

// Вставляем в таблицу 10 записей
for($i=0; $i<10; $i++) {
$id=time();
mysql_query("insert into t(id,a) values($id,'Стр$i!')");
}

// Выводим все записи
$r=mysql_query("select * from t");
for($i=0; $i<mysql_num_rows($r); $i++) {
$f=mysql_fetch_array($r);
echo "$f[id] -> $f[a]<br>\n";
}
?>
Скачал с официального сайта 20 мб. файл, разархивировал в каталог c:\MySQL. Создал соответственно два Shortcut-а:
C:\mysql\bin\mysqld-nt.exe -u root
C:\mysql\bin\mysqladmin.exe -u root shutdown
запускаю сначала первый Shortcut а потом winmysqladmin.exe.
При попытке создать таблицу проблем нет, но вот при попытке прочесть данные появляется ошибка! Посмотрев через утилиту winmysqladmin.exe таблица создана но поля нет!
Что я делаю не правильно?

С помощью какой утилиты я могу создать таблицу? Как например для Delphi - Database Desktop?

nagash
16.10.2004, 16:42
1 - напиши текст оишбки... потому что откуда МЫ можем знать что там у тебя за ошибка?
2 - поле естественно там нету...
там есть пустая таблица... а откуда мюскл должен знать, какие ты хочешь туда поля?
разумно, что их надо создать... не думаешь?

Flesh5
16.10.2004, 16:49
1) Может я и лямер в MySQL но в програмировании и логике нет:
@mysql_query("create table t(id int,a text)");

2) for($i=0; $i<mysql_num_rows($r); $i++) {
Error:
Error: E_WARNING
mysql_num_rows(): supplied argument is not a valid MySQL result resource
at First SQL.php line 27

nagash
16.10.2004, 16:50
сразу полсе mysql_query();
надо сделать
echo mysql_error();

Flesh5
16.10.2004, 17:39
$r=mysql_query("select * from t");
echo mysql_error();
No Database Selected

Flesh5
16.10.2004, 17:52
А ларчик просто открывался!
mysql_select_db(DBName);
Должно быть
mysql_select_db($DBName);
Все решилось с поммощью echo mysql_error();

nagash
16.10.2004, 18:12
да...
mysql_error - решает 99% ошибок...