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>
<!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]

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