Mysql Help!
У меня установлен apache 1.3, Php 4 и Mysql 4.11.alfa
Когда тестирую базу данных( пишу следующий запрос
<?
define("DBName","test");
define("HostName","localhost");
define("UserName","root");
define("Password","");
if(!mysql_connect(HostName,UserName,Password))
{ echo "Ne mogu soedenitsa s bazoy ".DBName."!
";
echo mysql_error();
exit;
}
mysql_select_db(DBName);
mysql_query("create table t(id int, a text)");
for($i=0; $i<10; $i++)
{$id=time();
mysql_query("insert into t(id, a) values($id, 'Стр$i!')");
}
$r=mysql_query("select * form t");
for($i=0; $i<mysql_num_rows($r); $i++)
{ $f=mysql_fetch_array($r);
echo "$f[id] -> $f[a]
\n";
}
?>
то получаю ответ:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in e:\home\localhost\www\mysql.php on line 19
В чем дело?!
Объясните пожалуйста.
$con = mysql_connect('host','root','pass');
$db = mysql_select_db($dbname, $con);
$sql = "select...";
$res = mysql_query($sql, $con);
должно работать!
Цитата:
Originally posted by Andius
по-моему, в функции mysql_query надо еще указывать соединение, т.е.
по-моему, в функции mysql_query надо еще указывать соединение, т.е.
Да нет, не обязательно.
Ты решишь проблему заменив:
Код:
$r=mysql_query("select * form t");
на
Код:
$r=mysql_query("select * form t") or die(mysql_error());
да и вообще, ошибки полезно обрабатывать.
Кроме того, я бы рекомендовал бы вообще изменить последний цикл:
$r=mysql_query("select * form t");
for($i=0; $i<mysql_num_rows($r); $i++)
{ $f=mysql_fetch_array($r);
echo "$f[id] -> $f[a]
\n";
}
на
Код:
$r=mysql_query("select * form t") or die(mysql_error());
while ($f=mysql_fetch_array($r)) {
echo $f[id]." -> ".$f[a]."
\n";
}
while ($f=mysql_fetch_array($r)) {
echo $f[id]." -> ".$f[a]."
\n";
}
оффтоп. старайся в строках выносить переменные. Это увеличивает скорость работы скрипта, да и путаться потом не будешь. (см. http://codenet.ru/webmast/php/speed/#1)
Цитата:
Originally posted by sura
Спасибо большое всем!
or die(mysql_error());
дало результат:
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'form t' at line 1
т.е у меня было (select FORM) вместо FROM.
сейчас все работает
еще раз большое спасибо.