Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Ошибка в операторе CREATE TABLE
 
 автор: Посетитель   (03.05.2006 в 21:40)   письмо автору
 
 


<?php
$user 
"dom246";
$pass "oKbwXXnE";
$db "domains";
CREATE TABLE domains(domain VARCHAR(30), sex VARCHAR(30), mail VARCHAR(30))";
$link = mysql_connect("dom246", $user$pass);
mysql_select_db(
$db$link);
$put = "INSERT INTO domains(domainsexmailvalues('$domain''$sex''$mail')";
mysql_query(
$put$link);
?>

Пишет что есть ошибка на этой строке:

CREATE TABLE domains(domain VARCHAR(30), sex VARCHAR(30), mail VARCHAR(30))";

Как правильно написать эту строку?

   
 
 автор: cheops   (03.05.2006 в 22:29)   письмо автору
 
   для: Посетитель   (03.05.2006 в 21:40)
 

А как точно выглядит сообщение об ошибке и почему оператор CREATE TABLE не заключён в двойные кавычки и не происвоен никакой переменной? PHP не поддерживает интерактивный SQL, когда SQL-операторы можно писать в перемежку с остальным кодом.

   
 
 автор: Посетитель   (03.05.2006 в 23:29)   письмо автору
 
   для: Посетитель   (03.05.2006 в 21:40)
 

Если я пишу так:

$bd = "CREATE TABLE domains(domain VARCHAR(30), sex VARCHAR(30), mail VARCHAR(30))"; 

Или так:

$bd = CREATE TABLE domains(domain VARCHAR(30), sex VARCHAR(30), mail VARCHAR(30)); 

То выводит туже ошибку:
Parse error: parse error, unexpected T_STRING in /home/d/dom24.h16.ru/WWW/bd.php on line 17

   
 
 автор: Полный Чайник   (04.05.2006 в 09:15)   письмо автору
 
   для: Посетитель   (03.05.2006 в 23:29)
 

Приведи полный текст файла

   
 
 автор: Посетитель   (04.05.2006 в 11:13)   письмо автору
 
   для: Посетитель   (03.05.2006 в 21:40)
 


<form method="get" action="bd.php"> 
<p>domain:</p>
<input type="text" name="domain">
<br> 
<p>sex:</p>
<input type="password" name="sex">
<p>mail:</p>
<input type="password" name="mail">
<br> 
<input type="submit" value="&#1503;&#1502;&#1505;&#1499;&#1488;&#1506;&#63637;"> 
</form> 

<?php
$user 
"dom246";
$pass "oKbwXXnE";
$db "domains";
$bd "CREATE TABLE domains(domain VARCHAR(30), sex VARCHAR(30), mail VARCHAR(30))";
$link mysql_connect("dom246"$user$pass);
mysql_select_db($db$link);
$put "INSERT INTO domains(domain, sex, mail) values('$domain', '$sex', '$mail')";
mysql_query($put$link);
?>

probival i tak:

<?php
...
$bd "CREATE TABLE domains(domain VARCHAR(30), sex VARCHAR(30), mail VARCHAR(30))";
print 
"$bd";
...
?>

i tak:

<?php
...
$bd "CREATE TABLE domains(domain VARCHAR(30), sex VARCHAR(30), mail VARCHAR(30))";
mysql_query($bd);
...
?>

ya tochno ne znayu kak, poetomu i sprashivayu.

   
 
 автор: cheops   (04.05.2006 в 20:47)   письмо автору
 
   для: Посетитель   (04.05.2006 в 11:13)
 

А больше ничего в файле нет? У меня ошибка Parse error: parse error, unexpected T_STRING in /home/d/dom24.h16.ru/WWW/bd.php on line 17 не появляется...

   
 
 автор: Посетитель   (05.05.2006 в 14:19)   письмо автору
 
   для: cheops   (04.05.2006 в 20:47)
 

А как вы сделали, из выше перечисленных мною вариантов?

   
 
 автор: cheops   (05.05.2006 в 22:01)   письмо автору
 
   для: Посетитель   (05.05.2006 в 14:19)
 

Что-то не очень понятно, сделал что?

   
 
 автор: Посетитель   (07.05.2006 в 08:26)   письмо автору
 
   для: cheops   (04.05.2006 в 20:47)
 

---
А больше ничего в файле нет? У меня ошибка Parse error: parse error, unexpected T_STRING in /home/d/dom24.h16.ru/WWW/bd.php on line 17 не появляется...
---
Если у вас ошибка не появляется, значит вы код написали, так я спрашиваю какой код вы написали, из выше перечисленных.

   
 
 автор: cheops   (07.05.2006 в 11:56)   письмо автору
 
   для: Посетитель   (07.05.2006 в 08:26)
 

Первый блок в сообщении от 04.05.2006 в 11:13

   
 
 автор: Посетитель   (07.05.2006 в 21:52)   письмо автору
 
   для: Посетитель   (03.05.2006 в 21:40)
 

Мне пишет следующие ошибки:

Warning: mysql_connect(): Unknown MySQL Server Host 'dom246' (1) in /home/d/dom24.h16.ru/WWW/ppp.php on line 19

Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in /home/d/dom24.h16.ru/WWW/ppp.php on line 20

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/d/dom24.h16.ru/WWW/ppp.php on line 22

   
 
 автор: cheops   (07.05.2006 в 22:16)   письмо автору
 
   для: Посетитель   (07.05.2006 в 21:52)
 

Это говорит о том, что хост "dom246" не существует - и требует указать имя сервера, может вместо "dom246" в функции mysql_connect() следует указать "localhost"? Что говорит служба поддержки?

   
 
 автор: Посетитель   (09.05.2006 в 15:04)   письмо автору
 
   для: cheops   (07.05.2006 в 22:16)
 

Спасибо, и в правде, этого хоста нет, я перепутал.

   
 
 автор: Посетитель   (09.05.2006 в 15:23)   письмо автору
 
   для: Посетитель   (07.05.2006 в 21:52)
 

Но у меня все ещё, эти две ошибки:

Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in /home/d/dom24.h16.ru/WWW/bd.php on line 19

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/d/dom24.h16.ru/WWW/bd.php on line 21


С таким кодом:

...
<?php
$user 
"dom246";
$pass "FclV6Hfz";
$db "domains";
$link "CREATE TABLE domains(domain VARCHAR(30), sex VARCHAR(30), mail VARCHAR(30))";
mysql_connect("database"$user$pass);
mysql_select_db($db$link);
$put "INSERT INTO domains(domain, sex, mail) values('$domain', '$sex', '$mail')";
mysql_query($put$link);
"SELECT * FROM domains"
?>

   
 
 автор: cheops   (09.05.2006 в 17:52)   письмо автору
 
   для: Посетитель   (09.05.2006 в 15:23)
 

Функция mysql_select_db в качестве второго параметра принимает, дескрипто соединения, который возвращает функция mysql_connect(), у вас вместо него передаётся SQL-запрос. Следует переписать данный код следующим образом
<?php 
$user 
"dom246"
$pass "FclV6Hfz"
$db "domains"
$link mysql_connect("database"$user$pass); 
if(!
$link) exit("Сервер MySQL не доступен");
mysql_select_db($db$link); 
$put "INSERT INTO domains(domain, sex, mail) values('$domain', '$sex', '$mail')"
mysql_query($put$link); 
"SELECT * FROM domains" 
?>

   
 
 автор: Посетитель   (09.05.2006 в 20:33)   письмо автору
 
   для: cheops   (09.05.2006 в 17:52)
 

А где же я создаю таблицу?

   
 
 автор: cheops   (10.05.2006 в 13:16)   письмо автору
 
   для: Посетитель   (09.05.2006 в 20:33)
 

Для этого нужно выполнить дополнительный SQL-запрос
<?php 
$user 
"dom246"
$pass "FclV6Hfz"
$db "domains"
$link mysql_connect("database"$user$pass); 
if(!
$link) exit("Сервер MySQL не доступен"); 
mysql_select_db($db$link); 
$put "CREATE TABLE domains(domain VARCHAR(30), sex VARCHAR(30), mail VARCHAR(30))"
mysql_query($put$link); 
$put "INSERT INTO domains(domain, sex, mail) values('$domain', '$sex', '$mail')"
mysql_query($put$link); 
?>

   
 
 автор: Посетитель   (11.05.2006 в 15:07)   письмо автору
 
   для: cheops   (09.05.2006 в 17:52)
 

Вряд ли этот код работает:

"SELECT * FROM domains" 

наверно его в переменную надо вставить.

   
 
 автор: Посетитель   (11.05.2006 в 17:08)   письмо автору
 
   для: Посетитель   (11.05.2006 в 15:07)
 

Так что именно надо сделать, что бы этот код работал?

   
 
 автор: Посетитель   (13.05.2006 в 15:06)   письмо автору
 
   для: Посетитель   (11.05.2006 в 17:08)
 

Короче:
Как сделать что бы вывело все что у меня записано в базе.

   
 
 автор: cheops   (13.05.2006 в 15:42)   письмо автору
 
   для: Посетитель   (13.05.2006 в 15:06)
 

Можно поступить примерно так
<?php
  $query 
"SELECT * FROM domains";
  
$dmn mysql_query($query);
  if(!
$dmn) exit(mysql_error());
  if(
mysql_num_rows($dmn) > 0)
  {
     while(
$domains mysql_fetch_array($dmn))
     {
        echo 
$domains['domain']."<br>";
        echo 
$domains['sex']."<br>";
        echo 
$domains['mail']."<br><br>";
     }
  }
?>

PS Под новые вопросы, лучше заводить новые темы, чтобы название темы соответствовало содержанию.

   
 
 автор: Посетитель   (14.05.2006 в 14:47)   письмо автору
 
   для: cheops   (13.05.2006 в 15:42)
 

Ошибка:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/d/dom24.h16.ru/WWW/bd.php on line 26

   
 
 автор: cheops   (14.05.2006 в 14:50)   письмо автору
 
   для: Посетитель   (14.05.2006 в 14:47)
 

Прикрепите, если не сложно полный скрипт bd.php (так чтобы в нём был код до 26 строки).

   
 
 автор: Посетитель   (14.05.2006 в 20:26)   письмо автору
 
   для: Посетитель   (03.05.2006 в 21:40)
 

<form method="get" action="bd.php"> 
<p>domain:</p> 
<input type="text" name="domain"> 
<br> 
<p>sex:</p> 
<input type="password" name="sex"> 
<p>mail:</p> 
<input type="password" name="mail"> 
<br> 
<input type="submit" value="gjgj"> 
</form> 
<?php 
$user 
"dom246"
$pass "FclV6Hfz"
$db "domains"
$link mysql_connect("database"$user$pass); 
if(!
$link) exit("Сервер MySQL не доступен"); 
mysql_select_db($db$link); 
$put "INSERT INTO domains(domain, sex, mail) values('$domain', '$sex', '$mail')"
mysql_query($put$link); 
$query "SELECT * FROM domains"
  
$dmn mysql_query($query); 
{
  if(!
$dmn)
 
     while(
$domains mysql_fetch_array($dmn)) 
     { 
        echo 
$domains['domain']."<br>"
        echo 
$domains['sex']."<br>"
        echo 
$domains['mail']."<br><br>"
     } 
  
}
?>

   
 
 автор: cheops   (14.05.2006 в 23:40)   письмо автору
 
   для: Посетитель   (14.05.2006 в 20:26)
 

Строку
<?php
if(!$dmn)
?>

следует заменить на
<?php
if(!$dmn) exit("Ошибка - ".mysql_error()."<br>".$query);
?>

Что теперь выводится?

   
 
 автор: Посетитель   (15.05.2006 в 14:04)   письмо автору
 
   для: cheops   (14.05.2006 в 23:40)
 

Ошибка - No Database Selected
SELECT * FROM domains

   
 
 автор: cheops   (15.05.2006 в 14:53)   письмо автору
 
   для: Посетитель   (15.05.2006 в 14:04)
 

У вас не выбрана база данных, для того, эту ошибку можно было обнаружить раньше, если вместо
<?php
mysql_select_db
($db$link);
?>

написать
<?php
if(!mysql_select_db($db$link)) exit("К сожалению, база данных не выбрана");
?>

Убедитесь, имеется ли на сервере база данных с именем domains?

   
 
 автор: Посетитель   (15.05.2006 в 16:26)   письмо автору
 
   для: cheops   (15.05.2006 в 14:53)
 

Так выделина же:

<form method="get" action="bd.php"> 
<p>domain:</p> 
<input type="text" name="domain"> 
<br> 
<p>sex:</p> 
<input type="password" name="sex"> 
<p>mail:</p> 
<input type="password" name="mail"> 
<br> 
<input type="submit" value="gjgj"> 
</form> 
<?php 
$user 
"dom246"
$pass "FclV6Hfz"
$db "domains"
$link mysql_connect("database"$user$pass); 
if(!
$link) exit("Сервер MySQL не доступен"); 
mysql_select_db($db$link); //TUUUUUUUUUUUUUUUUUUUUUUUUUUUUT
$put "INSERT INTO domains(domain, sex, mail) values('$domain', '$sex', '$mail')"
mysql_query($put$link); 
$query "SELECT * FROM domains"
  
$dmn mysql_query($query); 
{

if(!
$dmn) exit("Ошибка - ".mysql_error()."<br>".$query); 

 
     while(
$domains mysql_fetch_array($dmn)) 
     { 
        echo 
$domains['domain']."<br>"
        echo 
$domains['sex']."<br>"
        echo 
$domains['mail']."<br><br>"
     } 
  
}
?> 

   
 
 автор: cheops   (15.05.2006 в 22:15)   письмо автору
 
   для: Посетитель   (15.05.2006 в 16:26)
 

А база данных domains точно так называется? Не может быть ошибки?
<?php
  $db 
"domains";
?>

   
 
 автор: Посетитель   (16.05.2006 в 14:58)   письмо автору
 
   для: cheops   (15.05.2006 в 22:15)
 

Большое спасибо, база данных по другому называется.
Теперь все работает.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования