Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php/mysql] Dodanie kilku tabel z poziomu php
Forum PHP.pl > Forum > Przedszkole
Ed
Witam, chcę dodać kilka tabel z poziomu php

  1. <?php
  2. $connect = @mysql_connect(host, user_db, pass_db);
  3. $select_db = @mysql_select_db(database);
  4. $sql = "CREATE TABLE `ban` (
  5. `id` int(11) NOT NULL auto_increment,
  6. `ip` varchar(255) NOT NULL default '0',
  7. PRIMARY KEY (`id`)
  8. ); CREATE TABLE `pages` (
  9. `id` int(11) NOT NULL auto_increment,
  10. `title` varchar(255) NOT NULL default '',
  11. `text` text NOT NULL,
  12. PRIMARY KEY (`id`)
  13. );
  14. ";
  15. $add = mysql_query($sql) or die(mysql_error());
  16. echo $add;
  17. ?>


Jedną tabele w zapytaniu moge dodać, ale już drugiej nie. Zapytanie na pewno do bani bo wyskakuje mi błąd:

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 '; CREATE TABLE `pages` ( `id` int(11) NOT NULL auto_increment, `title` var' at line 5

W jaki sposób można dodać kilka tabel, albo jak to zrobić np includując plik baza.sql

Z góry dziękuje za odpowiedź
ApC
Kod
<?php
$connect = @mysql_connect(host, user_db, pass_db);
$select_db = @mysql_select_db(database);
$sql = "CREATE TABLE `ban` (
  `id` int(11) NOT NULL auto_increment,
  `ip` varchar(255) NOT NULL default '0',
  PRIMARY KEY  (`id`)
);
";
$sql2 = "CREATE TABLE `pages` (
  `id` int(11) NOT NULL auto_increment,
  `title` varchar(255) NOT NULL default '',
  `text` text NOT NULL,
  PRIMARY KEY  (`id`)
);
";
$add = mysql_query($sql) or die(mysql_error());
$add2 = mysql_query($sql2) or die(mysql_error());
echo $add;
echo $add2;
?>



Np. tak biggrin.gif smile.gif
dadexix
jeśli masz na serwerze obsługe mysqli możesz spróbować mysqli_multi_query" title="Zobacz w manualu PHP" target="_manual
Ed
ApC też wiem, że tak można zrobić, ale jak zainstalować tabele z pliku poprzez php?

Jedynym problem jest znacznik ; przez który występuje błąd.
Może sa jeszcze jakieś inne propozycje?
dadexix
hm.. więc jeśli chcesz z pliku to może by tak się wysilić i popatrzyć do źródeł byle czego(np. do źródeł phpmyadmin czy do źródeł phpbb - odzyskiwanie bazy danych)

w manualu biblioteki mysql ktoś w komentarzu dał sposób na wysłanie z pliku...

  1. <?php
  2. function load_db_dump($file,$sqlserver,$user,$pass,$dest_db)
  3. {
  4. $sql=mysql_connect($sqlserver,$user,$pass);
  5. mysql_select_db($dest_db);
  6. $a=file($file);
  7. foreach ($a as $n => $l) if (substr($l,0,2)=='--') unset($a[$n]);
  8. $a=explode(";\n",implode("\n",$a));
  9. unset($a[count($a)-1]);
  10. foreach ($a as $q) if ($q)
  11. if (!mysql_query($q)) {echo "Fail on '$q'"; mysql_close($sql); return 0;}
  12. mysql_close($sql);
  13. return 1;
  14. }
  15. ?>
manual nie boli
Ed
Dzięki Daderix, już sobie wcześniej poradziłem. Mój sposób jest podobny do tego co ty przedstawiłeś.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.