Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem - skrypt nie działa
amaze
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 12.07.2005

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


Witam,

Mam pewnie banalny problem, ale nie mogłem się doszukać na forum. Mam skrypt:

  1. <?
  2. // newssetup.php
  3.  
  4. // Attempt to connect to the MySQL server
  5. $link = @mysql_connect(&#092;"localhost\", \"root\", \"pass\");
  6.  
  7. // If the connection was unsuccessful...
  8. if (!$link) {
  9.  
  10. // Output error information and exit
  11. print &#092;"Error connecting to database server\";
  12. }
  13.  
  14. // Attempt to create database. If successful...
  15. if (@mysql_create_db(&#092;"phpforflash\")) {
  16.  
  17. // Inform user of success
  18. print &#092;"Database created<br>n\";
  19. } else {
  20.  
  21. // Otherwise, tell user there was an error
  22. print &#092;"Couldn't create database<br>n\";
  23. }
  24.  
  25. // Attempt to select database. If successful...
  26. if (@mysql_select_db(&#092;"phpforflash\")) {
  27.  
  28. // Inform user of success
  29. print &#092;"Database selected<br>n\";
  30. } else {
  31.  
  32. // Otherwise, tell user there was an error
  33. print &#092;"Couldn't select database<br>n\";
  34. }
  35.  
  36. // Build table creation query
  37. $query = &#092;"CREATE TABLE news (
  38. newsID INTEGER AUTO_INCREMENT PRIMARY KEY,
  39. title VARCHAR(100),
  40. author VARCHAR(30),
  41. posted INTEGER,
  42. body MEDIUMTEXT)&#092;";
  43.  
  44. // Attempt to create table. If successful...
  45. if (@mysql_query($query)) {
  46.  
  47. // Inform user of success
  48. print &#092;"Table created successfully\";
  49. } else {
  50.  
  51. // Otherwise, tell user there was an error
  52. print &#092;"Error creating table\";
  53. }
  54.  
  55. // Close the connection
  56. mysql_close($link);
  57.  
  58. ?>


mam poprawnie zainstalowane Apache 2.0.54, mySQL 4.1.12a i php 5.04,
kiedy uruchamiam skrypt, nic się nie dzieje - nie otrzymuję żadnej informacji, po porstu biały ekran przeglądarki. Sprawdzałem w phpMyAdmin - baza nie została utworzona itp. Hasło wpisałem takie jak w konfiguracji mysql.

z góry dziękuję za pomoc.

pozdrawiam.

Ten post edytował amaze 12.07.2005, 11:55:00
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
kszychu
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


Na początek usuń @ sprzed nazw funkcji. @ powoduje niewyświetlanie błędów zwracanych przez funkcje.


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
amaze
post
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 12.07.2005

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


ok, usunąłem i teraz otrzymuję informację:

Fatal error: Call to undefined function mysql_create_db() in C:\WebServer\docs\news\newssetup.php on line 17

Dodam, że MySQL chyba działa poprawnie, ponieważ spod phpMyAdmina mogę swobodnie zarządzać bazą.


dziękuję i pozdrawiam.
Go to the top of the page
+Quote Post
kszychu
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


Cytat(amaze @ 2005-07-12 14:20:10)
Fatal error: Call to undefined function mysql_create_db() in C:\WebServer\docs\news\newssetup.php on line 17

A to oznacza nie co innego tylko to, że php nie ma włączonej obsługi mysqla. Trzeba ją włączyć w konfiguracji w php.ini.


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
amaze
post
Post #5





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 12.07.2005

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


Nie mogę sobie poradzić... przejrzałem php.ini, ale nie wiem, który fragment poprawić. (jest ;extension=php_mysql.dll), oraz poprawna ścieżka do extensions. (jeśli o to chodzi). Sorr za zawracanie głowy.

//edit
nie zauważyłem, że przed extension=php_msql.dll, jest znak ";", tak zresztą jak przed resztą ext. Usunąłem go i teraz wykrywa błąd już w 7 linijce - czyli podczas łączenia się z bazą. Usunięcie wszytskich znaków ; nic nie daje, jedynie przy restarcie apache'a wykrywa mi błędy - nie może odnaleźć niektórych modułów.

Ten post edytował amaze 12.07.2005, 14:59:50
Go to the top of the page
+Quote Post
kamiox
post
Post #6





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 13.10.2003
Skąd: Małopolska

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


Po co usunąłeś ";" przed resztą rozszerzeń skoro z nich nie korzystasz ? To nie ma nic wspólnego z błędem !

Błąd się pojawia ponieważ masz podane niewłaściwe parametry w funkcji:

  1. <?php
  2.  
  3. mysql_connect(&#092;"localhost\", \"root\", \"pass\");
  4.  
  5. ?>


musisz podać włąsciwą nazwe użytkownika i hasło, może spróbuj wpisać bez hasła:

  1. <?php
  2.  
  3. mysql_connect(&#092;"localhost\", \"root\", \"\"); 
  4.  
  5. ?>


bo tak się domyślnie instaluje mysql.

Ten post edytował kamiox 12.07.2005, 15:21:16


--------------------
Go to the top of the page
+Quote Post
amaze
post
Post #7





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 12.07.2005

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


mnie się wyadaje, że kszychu ma rację tylko nie potrafię włączyć obsługi mySQL. To ten znacznik ";" w końcu powinien być, czy nie?
Jak się okazuje, nie ma nic do rzecy fakt, jakie ustawię hasło i usera - nawet, gdy pola pozostawiam puste, nadal otrzymuję identyczną informację.
Chyba fakt, że wywołuje: "Call to undefined function", znaczy, że nie ma komunikacji między bazą a php.

//edit
PS: Najnowsze MySQL 4.1.12a się tak nie instaluje - trzeba od razu podać hasło do roota.

pozdrawiam.

Ten post edytował amaze 12.07.2005, 15:46:46
Go to the top of the page
+Quote Post
kamiox
post
Post #8





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 13.10.2003
Skąd: Małopolska

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


Cytat(amaze @ 2005-07-12 15:42:10)
PS: Najnowsze MySQL 4.1.12a się tak nie instaluje - trzeba od razu podać hasło do roota.

Skoro masz mysql powyżej 4.1 to powinieneś korzystać chyba z mysqli czyli zamiast:

  1. <?php
  2.  
  3. $link = @mysql_connect(&#092;"localhost\", \"root\", \"pass\");
  4.  
  5. ?>


dać:

  1. <?php
  2.  
  3. $link = @mysqli_connect(&#092;"localhost\", \"root\", \"pass\");
  4.  
  5. ?>


i zamiast np.

  1. <?php
  2.  
  3. if (@mysql_create_db(&#092;"phpforflash\")) {
  4.  
  5. ?>


dać:

  1. <?php
  2.  
  3. if (@mysqli_query( $link, 'CREATE DATABASE phpforflash' )) {
  4.  
  5. ?>


Zobacz sobie do manuala - > http://pl.php.net/mysqli


Co do średniaka to chyba logiczne, że jeśli chcesz włączyć obsługe jakiejś biblioteki to usuwasz średnik.

Ten post edytował kamiox 12.07.2005, 18:10:04


--------------------
Go to the top of the page
+Quote Post
kurt
post
Post #9





Grupa: Zarejestrowani
Postów: 89
Pomógł: 3
Dołączył: 14.07.2005
Skąd: Warszawa

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


Cytat(kszychu @ 2005-07-12 13:25:56)
Cytat(amaze @ 2005-07-12 14:20:10)
Fatal error: Call to undefined function mysql_create_db() in C:\WebServer\docs\news\newssetup.php on line 17

A to oznacza nie co innego tylko to, że php nie ma włączonej obsługi mysqla. Trzeba ją włączyć w konfiguracji w php.ini.

Mam podobny problem : Fatal error: Call to undefined function mysql_connect() in c:\Inetpub\wwwroot\document1.phtml on line 17

podczas próby wywołania funkcji : mysql_connect("127.0.0.1","","");

jaki parametr odpowiada w php.ini za współpracę z mysql ?

Już wiem - po prostu należy po wprowazeniu wszelkich zmian w php.ini zrestartować IIS (net stop iisadmin) (net start w3svc) pod konsolą. Niby oczywiste , ale ... smile.gif

Ten post edytował kurt 16.07.2005, 11:14:24
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: 20.08.2025 - 04:47