• 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

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
+2 głosów
4,967 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,806 wizyt
pytanie zadane 11 kwietnia 2015 w PHP przez robert9620 Stary wyjadacz (11,640 p.)
+1 głos
3 odpowiedzi 403 wizyt
pytanie zadane 9 listopada 2021 w PHP przez Dariusz Hozer Użytkownik (920 p.)
0 głosów
1 odpowiedź 303 wizyt

93,176 zapytań

142,185 odpowiedzi

321,979 komentarzy

62,506 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 1637p. - dia-Chann
  2. 1497p. - Łukasz Piwowar
  3. 1372p. - CC PL
  4. 1370p. - Łukasz Eckert
  5. 1351p. - Tomasz Bielak
  6. 1328p. - Michal Drewniak
  7. 1312p. - Łukasz Siedlecki
  8. 1302p. - rucin93
  9. 1273p. - Adrian Wieprzkowicz
  10. 1232p. - Mikbac
  11. 1181p. - rafalszastok
  12. 1169p. - Grzegorz Aleksander Klementowski
  13. 1155p. - Piotr Aleksandrowicz
  14. 1149p. - Michał Telesz
  15. 1127p. - Mariusz Fornal
Szczegóły i pełne wyniki

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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...