PHP: <html> <body> <h1>show bd</h1> <? //соеденится с базой $conn = mysql_connect("database", "**log***", "**pasw***"); mysql_select_db("phone", $conn); //запрос $sq1 = "select * from phone"; $result = mysql_query($sq1, $conn); print "<table border = 1>\n"; //получить назв полей print "<tr>\n"; while ($lield = mysql_fetch_field($result)){ print " <th>$field->name</th>\n"; } print "</tr>\n\n"; while ($row = mysql_fetch_assoc($result)){ print "<tr>\n"; foreach ($row as $col=>$val){ print " <td>$val</td>\n"; } print "</tr>\n\n"; } ?> </body> </html> Выдает следующие ошибки Warning: mysql_fetch_field(): supplied argument is not a valid MySQL result resource in /home/b/biw.hut2.ru/WWW/sql.php on line 19 Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/b/biw.hut2.ru/WWW/sql.php on line 25 Значит ли это, что я не соеденился с бд?, или что сервер не распознает какието комманды?
Не надо гадать. Достаточно просто mysql_connect("database", "**log***", "**pasw***") or die(mysql_error());
А я соединяюсь так: PHP: <?php if(!function_exists('mysql_connect')) $this->_log('Error. Class: DB. MySQL functions are not available. Look "phpinfo();" and check your "php.ini" file.'); $this->connect = @mysql_connect($this->cfg['host'].':'.$this->cfg['port'], $this->cfg['login'], $this->cfg['password']) or $this->_log('Error. Class: DB. Can`t connect to MySQL server.'); @mysql_query("SET NAMES 'utf8'", $this->connect) or $this->_log(mysql_errno($this->connect).': '.mysql_error($this->connect)); @mysql_query("use `".$this->cfg['name']."`", $this->connect) or $this->_log(mysql_errno($this->connect).': '.mysql_error($this->connect)); И никаких проблем =)
Это кусок из конструктора класса по работе с БД. Класс - обёртка над обычными функциями. А что не так?
Так, подключение к БД, есть что же за ошибка? Warning: mysql_fetch_field(): supplied argument is not a valid MySQL result resource in /home/b/biw.hut2.ru/WWW/sql.php on line 19
Я бы посоветовал после mysql_query() or die ('В этом месте бок'); плюс у тебя опечатка: # while ($lield = mysql_fetch_field($result)){ # print " <th>$field->name</th>\n"; если ты работаеш с одной базой то в mysql_query(); второй параметр не обязателен, его можно опустить. и в заключение, возможно mysql_query() ничего не вернул
у него же стоит перехватчик ошибок ... и собакой давит поползновения на экран ...все правильно ... пользователю их показывать не в обработанном виде не надо ;-)