Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] i PDO - problem z nowo utworzonymi tabelami
ixpack
post
Post #1





Grupa: Zarejestrowani
Postów: 248
Pomógł: 55
Dołączył: 1.06.2010
Skąd: mam to wiedzieć?

Ostrzeżenie: (0%)
-----


Proszę was - pomocy! Włosy tracę...

Postanowiłem przesiąść się na PDO - wszystko fajnie, ale niektóre tabele mi "nie działają"...

Poniższy kod dla jednych tabel działa, a dla innych już nie... Początkowo myślałem, że problem tkwi w "_" w nazwie, ale nie... Już włosów mi brak - może macie jakieś rady, co do PDO?

  1. $u = 'user';
  2. $pass = 'pass';
  3.  
  4. try {
  5. $dbh = new PDO('mysql:host=ip.ip.ip.ip;dbname=baza_danych', $u, $pass);
  6. foreach($dbh->query("SELECT * from tclo_brands") as $row) {
  7. print_r($row);
  8. }
  9. $dbh = null;
  10. } catch (PDOException $e) {
  11. print "Error!: " . $e->getMessage() . "<br />";
  12. die();
  13. }



Z góry dzięki za pomoc.

Ten post edytował ixpack 11.01.2011, 17:54:03


--------------------
Łatwo jest być odważnym za murami własnego zamku.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Mephistofeles
post
Post #2





Grupa: Zarejestrowani
Postów: 1 182
Pomógł: 115
Dołączył: 4.03.2009
Skąd: Myszków

Ostrzeżenie: (0%)
-----


Co wywala?
Spróbuj zawrzeć to w `` => `tclo_brands`.
Go to the top of the page
+Quote Post
ixpack
post
Post #3





Grupa: Zarejestrowani
Postów: 248
Pomógł: 55
Dołączył: 1.06.2010
Skąd: mam to wiedzieć?

Ostrzeżenie: (0%)
-----


Wywala

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'baza.tclo_brands' doesn't exist.

Ale tabele na są - problem jest ze wszystkimi tabelami, które tworzę od kilku dni... Te, "stare" działają ok.

Problem mam i na lokalnej maszynie i na serwerze...

Próbowałem brać w ', " - problem wydaje się po stronie serwera tylko, że na phpmyadminie wszystkie tabele są, korzystając z mysqli nie ma tego problemu... Tak jakby PDO sprawdzało jakiś cashe zanim sprawdzi czy tabela jest :/.

O losie.

Ten post edytował ixpack 11.01.2011, 17:53:29


--------------------
Łatwo jest być odważnym za murami własnego zamku.
Go to the top of the page
+Quote Post
Mephistofeles
post
Post #4





Grupa: Zarejestrowani
Postów: 1 182
Pomógł: 115
Dołączył: 4.03.2009
Skąd: Myszków

Ostrzeżenie: (0%)
-----


` to nie apostrofy, wpisuje się je klawiszem z tyldą. Spróbuj.
Go to the top of the page
+Quote Post
ixpack
post
Post #5





Grupa: Zarejestrowani
Postów: 248
Pomógł: 55
Dołączył: 1.06.2010
Skąd: mam to wiedzieć?

Ostrzeżenie: (0%)
-----


Niestety - problem chyba leży po stronie serwera mysql, szukałem, nie znalazłem sad.gif

Nawet jak wybieram NOWĄ tabelę bez podkreślników itp. to ten sam problem - tak jakby PDO nie widziało nowych tabel :/ dziwne. Stare tabele (już ponad roczne) działają tak jak powinny... Nowe nie.

Poddaję się i zamiast PDO używać będę jak do tej pory mysqli :/ też ma prepare - bo głównie o to mi chodzi.

Chciałem iść z duchem czasu winksmiley.jpg PDO jednak mi śmierdzi i może wrócę do tego za jakieś 2-3 miechy. No chyba, że ktoś mnie nakieruje winksmiley.jpg


================== Następnego dnia...:===============================
Ok rozwiązałem problem biggrin.gif

Konfiguracja mojego dedyka jest skopana, a że z linuxem nie jestem na "Przyjacielu", raczej tylko na "kolego" - więc tego nie ruszam...

Rozwiązanie: zamiast podawać ip.ip.ip.ip bazy do której się łącze wystarczy wstawić localhost ;D (zapewne jakbym łączył się z bazą, która nie jest postawiona na tym samym serwerze, to by było ok...) - oczywiście z lokalnej maszyny mi nadal nie działa (z adresem ip.ip.ip.ip winksmiley.jpg uprawnienia - za pewne dotyczy to tylko mojego dedyka), ale jak wrzucę skrypt na serwer wraz ze zmienionym adresem bazy - to działa. Dziwne?!

Ponad to wyczytałem gdzieś, że należy podawać całą nazwę tabeli: baza.tabela - ale u mnie to nie pomagało...

W moim przypadku skopane ustawienia serwera.

  1. <?php
  2.  
  3. $hostname = 'localhost'; //jakbym TU podał ip servera sql - to by mi nie działało...
  4.  
  5. $username = 'user z uprawnieniami';
  6.  
  7. $password = 'haslo';
  8.  
  9. try {
  10. $dbh = new PDO("mysql:host=$hostname;dbname=baza_danych", $username, $password);
  11.  
  12. echo 'Polaczony<br />';
  13.  
  14. $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  15.  
  16. $sql = 'SELECT * FROM tclo_brands';
  17. foreach ($dbh->query($sql) as $row)
  18. {
  19. print $row['brand_id'] .' - '. $row['brand_name'] . '<br />';
  20. }
  21.  
  22. $dbh = NULL;
  23. }
  24. catch(PDOException $e)
  25. {
  26. echo $e->getMessage();
  27. }
  28.  
  29. ?>


Ten post edytował ixpack 12.01.2011, 12:10:05


--------------------
Łatwo jest być odważnym za murami własnego zamku.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 21:59