• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak sprawdzić w MySQL czy istnieje tabela w bazie danych

Object Storage Arubacloud
+2 głosów
4,597 wizyt
pytanie zadane 11 kwietnia 2015 w PHP przez robert9620 Stary wyjadacz (11,640 p.)
Jak sprawdzić w MySQL czy istnieje tabela w bazie danych ?? Chodzi o to, że jeżeli istnieje to chcę do tej tabeli wrzucić rekordy, a jeżeli nie istnieje to ją stworzyć. Pomocy. Google przeszukalem i nic nie znajduje co by dzialalo.

6 odpowiedzi

+2 głosów
odpowiedź 11 kwietnia 2015 przez efiku Szeryf (75,160 p.)
wybrane 11 kwietnia 2015 przez robert9620
 
Najlepsza

Proszę:

function TableExists($table, \mysqli $mysqli){
    $response = $mysqli->query("SHOW TABLES LIKE '$table'");
    return ($response->num_rows > 0) ? true : false ;
}

Boshi  - zgadza się, nie ma sensu wsadzania isset. :) 

 

komentarz 11 kwietnia 2015 przez robert9620 Stary wyjadacz (11,640 p.)
mi caly czas zwraca false
komentarz 11 kwietnia 2015 przez robert9620 Stary wyjadacz (11,640 p.)
a moglbys jeszcze wrzucic wywolanie i sprawdzenie, moze tu mam cos zle ?
komentarz 11 kwietnia 2015 przez efiku Szeryf (75,160 p.)
Zobacz : http://prntscr.com/6sg6jk

Podpowiadam:

W bazie symfony mam tabele User:)

A jak nazwya się Twoja baza? :)
komentarz 11 kwietnia 2015 przez robert9620 Stary wyjadacz (11,640 p.)
miałem bła w wywołaniu funkcji, sorrka za moją nie uwage przez to zabralem czas ;/, ale sam tez go stracilem. Tak czy siak wielkie dizeki za pomoc !!!
komentarz 11 kwietnia 2015 przez efiku Szeryf (75,160 p.)
Spoczko:)

hehe, nie ma to jak debugger:>
+3 głosów
odpowiedź 11 kwietnia 2015 przez zirael [PL] Mądrala (5,200 p.)

a jak nie znasz nazwy tabeli, albo ją zapomniałeś to wystarczy że wpiszesz

SHOW TABLES;

 

+2 głosów
odpowiedź 11 kwietnia 2015 przez Wally Bywalec (2,840 p.)

No gość podał tam taki kod (http://stackoverflow.com/questions/15322337/mysqli-table-exists):

public function TableExists($table) {
  $res = $this->Query("SHOW TABLES LIKE $table");
  return mysql_num_rows($res) > 0;
}

Łatwo się domyślić co znaczy. Leci zapytanie SQL tłumaczone na polski: Pokaż tabele podobne do [nazwa]. Jeśli ilość wyników większa od zera to taka tabela istnieje.

Nawet sprawdziłem to u siebie. Zrobiłem dwie tabele 'users' i 'users2'. Dla zapytania powyżej gdy podaję w stringu 'users' dostaję w rezultacie jeden rekord z nazwą tejże tabeli. Czyli wystarczy zrobić powyższe zapytanie z dokładną* nazwą tabeli i sprawdzić ilość rekordów na zwróconym wyniku, jeśli równy 1 -> istnieje tabela.

*Dokładna - można prawdopodobnie dodać specjalne znaki żeby szukało o nazwie X, ale np z obojętnie jakim znakiem na końcu itp. 

+1 głos
odpowiedź 11 kwietnia 2015 przez HaKIM Szeryf (87,590 p.)
Nie rozumiem problemu. Nie wiesz jak sprawdzić czy w MySQL istenieje taka tabela?
komentarz 11 kwietnia 2015 przez robert9620 Stary wyjadacz (11,640 p.)
tak nie wiem jak to sprawdzic w kodzie (nie przez phpmyadmin oczywiscie)
komentarz 11 kwietnia 2015 przez HaKIM Szeryf (87,590 p.)
No to koledzy poniżej dobrze mówią. : ) Raczej już to zrobiłeś ale... I tak napiszę. :)
+1 głos
odpowiedź 11 kwietnia 2015 przez zirael [PL] Mądrala (5,200 p.)
Korzystasz z "phpmyadmin'a" czy z konsoli? Jeśli pracujesz na konsoli to tworzeniu tabeli służy kwerenda CREATE TABLE 'nazwa_tabeli', w phpmyadmin wystarczy kliknąć w button "Stwórz tabelę". Szczerze to za interfejsem graficznym nie przepadam, wolę pracować w konsolecie ;)
+1 głos
odpowiedź 11 kwietnia 2015 przez Coroys Początkujący (370 p.)
Jeśli konsola to takie podstawowe:

USE database;                          (wchodzi w baze danych o nazwie "database")
SHOW TABLES;                         (pokazuje stworzone tabele)
SHOW DATABASES;                 (pokazuje bazy danych)
DESCRIBE temperatures;     (pokazuje tabele temperatures, bez danych, same atrybuty, ich typ, klucz podstawowy/obcy)

SELECT * FROM temperatures; (pokazuje dane zawarte w tabeli temperatures)
komentarz 11 kwietnia 2015 przez robert9620 Stary wyjadacz (11,640 p.)

Teraz mam nieco inny problem z pobieraniem rekordów. Wpisuje coś takiego 

$sql = mysql_query("SELECT url FROM $table WHERE id = 1")
		or die('błąd' . $sql->connect_error);

i wychodzi taki oto blad ""Notice: Trying to get property of non-object in C:\xampp\htdocs\GALERIA\index.php on line 61"

komentarz 11 kwietnia 2015 przez efiku Szeryf (75,160 p.)
query masz proceduralnie, a próbujesz pobrac property z czegos co nie jest obiektem :d
komentarz 11 kwietnia 2015 przez robert9620 Stary wyjadacz (11,640 p.)
nie rozumiem ;/ Mam rekord w tabeli o nazwie podanej w zmiennej $table i chce pobrac dane z komorki url gdzie id = 1, gdzie jest blad, jak to zrobic dobrze?
komentarz 11 kwietnia 2015 przez efiku Szeryf (75,160 p.)
komentarz 11 kwietnia 2015 przez robert9620 Stary wyjadacz (11,640 p.)
a moze moglbys napisac mi jak to ma wygladac ?

Podobne pytania

+3 głosów
2 odpowiedzi 1,631 wizyt
pytanie zadane 11 kwietnia 2015 w PHP przez robert9620 Stary wyjadacz (11,640 p.)
+1 głos
3 odpowiedzi 348 wizyt
pytanie zadane 9 listopada 2021 w PHP przez Dariusz Hozer Użytkownik (920 p.)
0 głosów
1 odpowiedź 258 wizyt

92,760 zapytań

141,684 odpowiedzi

320,470 komentarzy

62,104 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...