Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Tworzenie nowej bazy
deha21
post 22.11.2017, 10:53:48
Post #1





Grupa: Zarejestrowani
Postów: 544
Pomógł: 5
Dołączył: 18.08.2009

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


Mam problem ze stworzeniem nowej bazy danych z poziomu PHP. Wcześniej skrypt mi działał, ale przełączeniu na nowszą wersję PHP, nie działa. Mój kod:
  1. $chost="localhost";
  2. $cuser="admin";
  3. $cpass="test";
  4.  
  5. $c = new mysqli($chost, $cuser, $cpass);
  6. mysqli_set_charset($c, "utf8");
  7.  
  8. $newbase = 'db_'.$code;
  9.  
  10. mysqli_query($c, "CREATE DATABASE ".$newbase);


Żadne błędy mi nie wyskakują, a mimo to baza się nie tworzy.


--------------------
Go to the top of the page
+Quote Post
viking
post 22.11.2017, 10:55:18
Post #2





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


new mysqli - tworzysz obiekt
mysqli_query - wywołujesz funkcję która nie ma nic wspólnego z utworzonym wcześniej obiektem


--------------------
Go to the top of the page
+Quote Post
deha21
post 22.11.2017, 10:59:52
Post #3





Grupa: Zarejestrowani
Postów: 544
Pomógł: 5
Dołączył: 18.08.2009

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


Cytat(viking @ 22.11.2017, 10:55:18 ) *
new mysqli - tworzysz obiekt
mysqli_query - wywołujesz funkcję która nie ma nic wspólnego z utworzonym wcześniej obiektem

Jak to nie ma? Ma. Przecież jest $c w funkcji, które wskazuje na nowe połączenie.


--------------------
Go to the top of the page
+Quote Post
viking
post 22.11.2017, 11:05:05
Post #4





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


Włącz zatem pełne raportowanie błędów i zobacz komunikaty. Albo w logach serwera.


--------------------
Go to the top of the page
+Quote Post
deha21
post 22.11.2017, 11:09:20
Post #5





Grupa: Zarejestrowani
Postów: 544
Pomógł: 5
Dołączył: 18.08.2009

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


Cytat(viking @ 22.11.2017, 11:05:05 ) *
Włącz zatem pełne raportowanie błędów i zobacz komunikaty. Albo w logach serwera.

No właśnie jest włączone raportowanie ale nic nie pokazuje. Logi serwera będę miał jutro ale nie wiem czy w nich znajdę te informacje.


--------------------
Go to the top of the page
+Quote Post
viking
post 22.11.2017, 11:14:57
Post #6





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


  1. ini_set('display_errors', true);
  2.  
  3. $chost="localhost";
  4. $cuser="admin";
  5. $cpass="test";
  6. mysqli_report(MYSQLI_REPORT_ALL);
  7. try{
  8. $c = new mysqli($chost, $cuser, $cpass);
  9. $c->set_charset("utf8");
  10.  
  11. $newbase = 'db_'.$code;
  12.  
  13. $res = $c->query("CREATE DATABASE ".$newbase);
  14. var_dump($res);
  15. } catch (mysqli_sql_exception $e) {
  16.  
  17. echo $e->getMessage();
  18. }


Ten post edytował viking 22.11.2017, 11:16:57


--------------------
Go to the top of the page
+Quote Post
Pyton_000
post 22.11.2017, 12:00:02
Post #7





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Niech kolega Autor zobaczy różnice między Object a Procedural a swoim kodem: http://devdocs.io/php/mysqli.query
Go to the top of the page
+Quote Post
deha21
post 22.11.2017, 13:02:05
Post #8





Grupa: Zarejestrowani
Postów: 544
Pomógł: 5
Dołączył: 18.08.2009

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


Cytat(Pyton_000 @ 22.11.2017, 12:00:02 ) *
Niech kolega Autor zobaczy różnice między Object a Procedural a swoim kodem: http://devdocs.io/php/mysqli.query

Znam różnicę. Ale on nie ma tutaj nic do rzeczy... Kod jest poprawnie napisany i powinien działać.
Okazało się, że mam zablokowane tworzenie bazy z poziomu PHP i mogę to rozwiązać jedynie przez API DirecAdmina. Tak też zrobiłem i działa.


--------------------
Go to the top of the page
+Quote Post
viking
post 22.11.2017, 13:08:58
Post #9





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


I chcesz powiedzieć że php żadnego błędu nie wyświetliło?
Bo powinno Access denied for user... to database db_...


--------------------
Go to the top of the page
+Quote Post
deha21
post 22.11.2017, 13:28:41
Post #10





Grupa: Zarejestrowani
Postów: 544
Pomógł: 5
Dołączył: 18.08.2009

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


Wyświetliło, ale dopiero po wrzucenia mysqli_report(MYSQLI_REPORT_ALL) w kod. Wcześniej pustka była.


--------------------
Go to the top of the page
+Quote Post
viking
post 22.11.2017, 13:38:13
Post #11





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


A mówiłem włącz pełne raportowanie - jest włączone wink.gif
Na przyszłość tak czy inaczej nie mieszaj kilku style ze sobą. Zaczynasz pisać w obiektowym to tego się trzymaj dla całego kodu.


--------------------
Go to the top of the page
+Quote Post
deha21
post 22.11.2017, 15:24:48
Post #12





Grupa: Zarejestrowani
Postów: 544
Pomógł: 5
Dołączył: 18.08.2009

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


Cytat(viking @ 22.11.2017, 13:38:13 ) *
A mówiłem włącz pełne raportowanie - jest włączone wink.gif
Na przyszłość tak czy inaczej nie mieszaj kilku style ze sobą. Zaczynasz pisać w obiektowym to tego się trzymaj dla całego kodu.

Włączone było z PHP, ale zapomniałem o MySQLu. A ten kod teraz przerabiam bo jest stary i nie przepisuję go na obiektowy, bo szkoda czasu jak działa smile.gif


--------------------
Go to the top of the page
+Quote Post
Tomplus
post 22.11.2017, 15:51:52
Post #13





Grupa: Zarejestrowani
Postów: 1 834
Pomógł: 225
Dołączył: 20.03.2005
Skąd: Będzin

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


Swoją drogą...
Nie masz dostępu do SSH? Z poziomu konsoli możesz mieć dostęp do logów błędów na już.
Go to the top of the page
+Quote Post
deha21
post 23.11.2017, 08:36:44
Post #14





Grupa: Zarejestrowani
Postów: 544
Pomógł: 5
Dołączył: 18.08.2009

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


Nie mam. To zwykły hosting współdzielony.


--------------------
Go to the top of the page
+Quote Post
viking
post 23.11.2017, 08:49:18
Post #15





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


Sporo hostingów obecnie daje dostęp do ssh.


--------------------
Go to the top of the page
+Quote Post
Tomplus
post 23.11.2017, 18:09:11
Post #16





Grupa: Zarejestrowani
Postów: 1 834
Pomógł: 225
Dołączył: 20.03.2005
Skąd: Będzin

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


Dokładnie. Chyba tylko darmowe hostingi nie oferują dostępu SSH.

Czasem jest tak że dostęp do SSH jest, ale nie koniecznie informacja o tym jest dostępna na stronie hostingu, albo włączają go na prośbę klienta.
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 Wersja Lo-Fi Aktualny czas: 19.04.2024 - 10:48