Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: 4 pytania
Forum PHP.pl > Forum > Bazy danych > MySQL
Ka-lolek
Witam, mam kilka pytań
1.
uczę się php i mysql i mam pewien problem:

stworzyłem formularz(plik do_showfielddef.php), w którym definiuje pola tabeli, która ma być stworzona, a następnie w pliku do_createtable.php wykonane mają byc instrukcje sql, aby tabela została stworzona w mojej bazie...

Błąd następuje po wypełnieniu formularza z polami tabeli (do_showfielddef.php) i przesłania go do pliku do_createtable.php.

Treść błędu jest taka:
Kod
Fatal error: Call to undefined function mysql_connect() in C:\Program Files\Apache Group\Apache2\htdocs\do_createtable.php on line 34


a kod pliku do_createtable.php to:
Kod
<!--HEADER-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
<META HTTP-EQUIV="Creation-date" CONTENT="2002.03.16">
<META HTTP-EQUIV="Reply-to" CONTENT="adres zwrotny">
<META NAME="Description" CONTENT="opis dokumentu">
<META NAME="Author" CONTENT="autor dokumentu">
<META NAME="Generator" CONTENT="Zajączek 3.0">
<TITLE>Utwórz tabelę bazy danych: Etap 3</TITLE>
</HEAD>
<BODY>

<h1>Dodawanie tabeli <?php echo "$_POST[table_name]"; ?> </h1>
<?php
$sql = "CREATE TABLE $table_name (";

// dodaje do instrukcji sql pola tabeli , ich typ i dł jeżeli była podana

for ($i = 0; $i < count($_POST[field_name]); $i++) {
$sql .= $_POST[field_name][$i]." ".$_POST[field_type][$i];
     if ($_POST[field_length][$i] != "") {
        $sql .= " (".$_POST [field_length][$i]."),";
        }
     else {
          $sql .= ",";
          }
}
$sql = substr($sql, 0, -1);
$sql .= ")";

//utwórz połączenie
$conn = mysql_connect("localhost","root","root") or
die(mysql_error());
//wybierz baze danych
$db = mysql_select_db("MyDB", $conn) or die(mysql_error());
//wykonaj zapytanie sql i pobierz wyniki
$sql_result = mysql_query($sql,$conn) or die(mysql_error());
//wyświetl komunikat o powodzeniu
if ($sql_result) {
echo "<p>$_POST[table_name] została utworzona!</p>";
}
?>


</body>
</HTML>

mam nadzieję, że wszystko opisałem w miare jasno...
zapewne błąd jest prosty, ale jako nowicjusz nie potrafię go znaleźć;)

2.
nie wiem czy mam włączone mysql na kompie, ponieważ kilka dni temu to zainstalowałem i nie wiem czym to się dokładnie włącza;) poki co stworzyłem tam bazę i mam włączoną mysql command line clienta , ale nie wiem czy to wystarczy żeby serwer mysql był uruchomiony i możnabyło się z nim łączyć:)

3.
możecie mi powiedzieć czemu w fragmencie kodu:
Kod
$sql .= $_POST[field_name][$i]." ".$_POST[field_type][$i];

i
Kod
$sql .= " (".$_POST [field_length][$i]."),";

sa kropki przy zmiennych $_POST[field_name, type, length]questionmark.gif?
nie weim do czego one służą...

4.
jeżeli z pliku php chcę połączyć się z bazą , to muszę wpsać host, login do bazy i hasło. Jednak jak to zrobić żeby to hasło nie było widoczne dla innych? przecież każdy może zobaczyć sobie kod źródłowy i będzie znać hasło... nie wiem czy dobrze rozumuję;) sprostujcie mnie w razie czego, albo podajcie jak się to rozwiązuje...

Pozdrawiam
proszę o pomoc
Ka-lolek
dr_bonzo
Zacznij czytac manuala php (http://pl.php.net/manual/pl/) po kolei -- tam sa opisane postawy (m.in. Kropkowanie).

4. tak sie to robi, a kodu nie podejrzysz ogladajac strone php (strone wyswietklona za pomoca php); no chyba ze masz serwer bardzo zle sonfigurowany, dopiero zagladajac do pliku *.php na dysku twardym -- czyli tak jak przy jego edycji.

3. To jest konkatenacja. Laczenie ("dodawanie") kilku stringow (lub innych typow) w jeden string.

1. sprawdz w pliku php.ini czy masz wlaczone rozszerzenie mysql
crash
1. Sprawdź czy masz włączone rozszerzenie obsługi MySQL'a w php.ini (linia extension=php_mysql.dll)
2. Ad. 1
3. Kropka to operator łączenia ciągów
4. Skrypt php jest wykonywany po stronie serwera i kod źródłowy nie jest widoczny w przeglądarce klienta. O połączeniach z bazą mysql" title="Zobacz w manualu PHP" target="_manual...
sobstel
Cytat(crashu @ 2005-06-19 16:10:40)
1. Sprawdź czy masz włączone rozszerzenie obsługi MySQL'a w php.ini (linia extension=php_mysql.dll)

jesli nie ma to zapewne jest to 5.x a tam juz powinno sie uzywac mysqli" title="Zobacz w manualu PHP" target="_manual
Ka-lolek
otworzylem plik php.ini (mam php5) i znalazlem tam jedynie linie extension=msql.dll
i
; extension=msql.so

takze chyba nie mam wlaczonej obslugi mysql... jak mam ja wlaczyc?

Nie bardzo wiem o czym sopel mówi... jakie mysqli? co to jest ?
crash
Nie msql a mysql (mysqli). To dość duża różnica. Widzę, że to linux więc zobacz czy masz w ogóle zainstalowane rozszerzenie php_mysql.
Ka-lolek
mam windowsa...
powiedzciemi co musze zrobic zeby mieczainstalowane w php obsluge mysql, bo w ksiazce , z ktorej sie ucze pisze , iz powinien on byc standardowo zainstalowany.....
aleksander
@Ka-lolek:
dr_bonzo
No do dobrze pisza, powinien tongue.gif

Ehhh... dopiero w wersji angielskiej jest to co trzeba:
http://pl.php.net/manual/en/ref.mysql.php
Cytat
php 5+

MySQL is no longer enabled by default, so the php_mysql.dll DLL must be enabled inside of php.ini. Also, php needs access to the MySQL client library. A file named libmysql.dll is included in the Windows php distribution and in order for php to talk to MySQL this file needs to be available to the Windows systems PATH. See the FAQ titled "How do I add my php directory to the PATH on Windows" for information on how to do this. Although copying libmysql.dll to the Windows system directory also works (because the system directory is by default in the systems PATH), it's not recommended.

As with enabling any php extension (such as php_mysql.dll), the php directive extension_dir should be set to the directory where the php extensions are located. See also the Manual Windows Installation Instructions. An example extension_dir value for php 5 is c:\php\ext
Ka-lolek
aha, wiec w php 5^ mysql nie jest automatycznie wlaczony...
tylko nie wiem co trzeba zrobic zeby to wlaczyc...
prosilbymn o w miare dokladna instrukcje;)

i jeszcze jedno : msql mysql i mysqli to są różne rzeczy ? (czym się różnią?)

POzdrawiaM
Ka-lolek
crash
msql => mSQL
mssql => Microsoft SQL
mysqk => stary MySQL
mysqli => nowa obsługa MySQL

A jak instalować to już Ci dr_bonzo zacytował dwa posty wyżej tongue.gif
Ka-lolek
ale to mysql i mysqli odnosi się funkcji połączeń z bazą danych z php tak (funkcje php są inne)?

bo sam serwer bazy mysql pozostał taki sam i można go obsługiwać za pomocą poleceń sql?
i od czego się wzięła nazwa mysqli?

hmmm
co do instalacji, to nei znam perfekcyjnie angielskiego dlatego powiedzcie co musze zrobic
- w php.ini musze usunac ; przed php_mysql.dll... ?

- cos z libmysql.dll ale nie wiem co biggrin.gif
- extension_dir trzeba gdzies wrzucic... ale gdzie?snitch.gif i co to jest to extension_dir ?

POzdro
prosze o odpowiedz i instrukcje jak zainstalowac mysql w php5

Ka-lolek
crash
Nie no tu się tylko cały czas cofamy... Na forum było już wiele razy opisywane instalowanie Apache'a, php i MySQL'a... Poszukaj sobie.
Ka-lolek
ale mi tu nie chodzi o instalacje mysql, tylko włączenie obsługi mysql w php5...
takze jakby ktos mogl to bardzo prosze o wskazowki, co przekopiowac/który plik zmodyfikować i jak.
Pozdrawiam

edit
to powie mi ktoś co muszęzrobić z tym plikiem libysql i extension_dir?
nie mogę tego faq znalezc na stronie php
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.