Temat
MySQl - przykład skryptu z książki - czemu nie działa??
195.205.63.* napisał:
Poniższy skrypt to zawartość całego pliku przyklad.php. Jego zadaniem jest dodanie do bazy danych "filmy" informacji wprowadzonych przez użytkownika (pola tekstowe). Baze mam utworzoną. tabele też. Pola w tabelach są zadeklarowane jako char. Nazwy się zgadzają.Skrypt nie działa. Dokładniej - wyrzuca błąd wykonania zapytania. Może jestemj ślepy:) a może jestem jeszcze niedouczony ( w sumie dopiero zacząłem bawić się z sql). Ale to jest przykład z książki. Jedyne co zmieniłem to nazwy zmiennych. Proszę o pomoc. Co tu jest nie tak??
[php:1:98a94920f5]
<?php
/*
Funkcja InsertRecord
Wstawia mowy rekord do tabeli employees.
W przypadku powodzenia operacji zwraca identyfikator nowego rekordu
a w przypadku błędu wartość ujemną wskazującą na przyczynę błędu.
*/
function InsertRecord( $aTytulpl, $aTytulen, $aGatunek1, $aGatunek2, $aProdukcja, $aRezyser, $aAktor1, $aAktor2, $aAktor3, $aAktor4)
{
// Przygotowanie wyrażenia SQL INSERT
$wstaw = "insert into film (tytulpl,tytulen,gatunek1,gatunek2,produkcja,rezyser,aktor1,aktor2,aktor3,aktor4 ) values ( $aTytulpl, $aTytulen, $aGatunek1, $aGatunek2, $aProdukcja, $aRezyser, $aAktor1, $aAktor2, $aAktor3, $aAktor4)";
// Przyłączenie do serwera i wykonanie instrukcji INSERT
$sql = mysql_connect( "localhost", "root", "krasnal" );
mysql_select_db( filmy, $sql );
$wynik = mysql_query( $wstaw, $sql );
if ( $wynik == True )
{
$wynik = mysql_insert_id( $sql );
}
else
{
// print( "Błąd wykonania zapytania<br>" );
$wynik = -1;
}
return $wynik;
}
?>
<html>
<head>
<title>Przykład MySQL: Wstawianie danych do bazy </title>
</head>
<body>
<?php
if ( $REQUEST_METHOD == 'POST' )
{
// Nastąpiło przesłanie danych formularza
$wynik = InsertRecord($Tytulpl, $Tytulen, $Gatunek1, $Gatunek2, $Produkcja, $Rezyser, $Aktor1, $Aktor2, $Aktor3, $Aktor4);
if ( $wynik > 0 )
{
print( "Dodano nowy wiersz, ID = $wynik<br>" );
}
else
{
print( "Błąd funkcji InsertRecord. Kod błędu = $wynik<br>" );
}
print( "<hr>" );
}
?>
Wpisz dane dodawanego filmu:<br>
<form action="<?php echo $PHP_SELF ?>" method="post">
Tytul polski <input type="text" name="Tytulpl" maxlength="30"><br>
Tytul oryginalny: <input type="text" name="Tytulen" maxlength="30"><br>
Gatunek (pierwszy): <input type="text" name="Gatunek1" maxlength="10"><br>
Gatunek (drugi): <input type="text" name="Gatunek2" maxlength="10"><br>
Produkcja: <input type="text" name="Produkcja" maxlength="30"><br>
Rezyser: <input type="text" name="Rezyser" maxlength="30"><br>
Aktor: <input type="text" name="Aktor1" maxlength="30"><br>
Aktor: <input type="text" name="Aktor2" maxlength="30"><br>
Aktor: <input type="text" name="Aktor3" maxlength="30"><br>
Aktor: <input type="text" name="Aktor4" maxlength="30"><br>
<input type="submit" name="Submit" value="Wyslij">
</form>
</body>
</html>
[/php:1:98a94920f5]
// Zmieniłem tagi na [php] - ParanoiK
80.53.147.* napisał:
Zrób tak i napisz co ci wywala:[php:1:668f973489]
function InsertRecord( $aTytulpl, $aTytulen, $aGatunek1, $aGatunek2, $aProdukcja, $aRezyser, $aAktor1, $aAktor2, $aAktor3, $aAktor4)
{
// Przygotowanie wyrażenia SQL INSERT
$wstaw = "insert into film (tytulpl,tytulen,gatunek1,gatunek2,produkcja,rezyser,aktor1,aktor2,aktor3,aktor4 ) values ( $aTytulpl, $aTytulen, $aGatunek1, $aGatunek2, $aProdukcja, $aRezyser, $aAktor1, $aAktor2, $aAktor3, $aAktor4)";
// Przyłączenie do serwera i wykonanie instrukcji INSERT
$sql = mysql_connect( "localhost", "root", "krasnal" ) or die("Error1 " . mysql_error());
mysql_select_db( filmy, $sql ) or die("Error2 " . mysql_error());;
$wynik = mysql_query( $wstaw, $sql ) or die("Error3 " . mysql_error());;
if ( $wynik == True )
{
$wynik = mysql_insert_id( $sql );
}
else
{
// print( "Błąd wykonania zapytania<br>" );
$wynik = -1;
}
return $wynik;
}
?>
btw1: sprawdź czy masz odpowiednie prawa dostępu do bazy.
btw2: sprawdź czy baza i tabele są utworzone.
[/php:1:668f973489]
195.205.63.* napisał:
prawa mam. jak dodawalem wczesniej po swojemu (choc prawie identycznie) wpisujac dane na sztywyno a nie w formularzu to dzialalowywaliło:
[quote] Error3 Nieznana kolumna 'Obcy' w field list[/quote]
Gdzie "Obcy" to wpis w pole tekstowe "Tytul polski"
Gdy pomijam Tytul polski (zostawiam puste miejsce) to wywala:
[quote] Error3 Something is wrong in your syntax obok ' h, g, i, t, r)' w linii 1[/quote]
Gdzie h,g,i,t,r to wpisy w kolejnych polach (tytulen,gatunek1,gatunek2,produkcja,rezyser). $ pola aktorow wywalilem (zarowno zmienne jak i pola w bazie danych)
80.53.147.* napisał:
A zrób alter table i dodaj int (auto_number) jako PK.195.205.63.* napisał:
a mozna troche jasniej?? jestem zoltodziobem.Alter Table??
i co znaczy PK
213.17.150.* napisał:
sprobuj tez wstawic zmienne z danymi do wrzucenia do tabeli w apostrofy. to zaradzi na twoj pierwszy porblem.[php:1:bf4d8b773c]
$wstaw = "insert into film (tytulpl,tytulen,gatunek1,gatunek2,produkcja,rezyser,aktor1,aktor2,aktor3,aktor4 ) values ( '$aTytulpl', '$aTytulen', '$aGatunek1', '$aGatunek2', '$aProdukcja', '$aRezyser', '$aAktor1', '$aAktor2', '$aAktor3', '$aAktor4')";
[/php:1:bf4d8b773c]
212.109.132.* napisał:
Na pierwszy rzut oka brakuje Ci apostrofow w zapytaniu. Wszystkie pola bedace stringami (VARCHAR'y rozne TEXT'y itp) powinny byc zamkniete w apostrofy przy dodawaniu, wiec poprawne (a przynajmniej poprawniejsze ) zapytanie powinno byc takie:pshem: to nie fair.. ja mialem wiecej do napisania ;p
Podobne tematy
Blog na PHP i MySQL
Darmowe konto www z obsluga MySQL
Problem z MySQL - wielka prośba o pomoc
Win2003 - Apache - Php - Mysql - PhpMyAdmin - PROBLEM
MySQL - jak wyciagnac konkretna linijke z tabeli
Mysql- Sortowanie A Polskie Litery
Php, Mysql - Prosta Wyszukiwarka - Nie Działa
Mysql
Darmowe konto www z obsluga MySQL
Problem z MySQL - wielka prośba o pomoc
Win2003 - Apache - Php - Mysql - PhpMyAdmin - PROBLEM
MySQL - jak wyciagnac konkretna linijke z tabeli
Mysql- Sortowanie A Polskie Litery
Php, Mysql - Prosta Wyszukiwarka - Nie Działa
Mysql
Działy
Copyright © 2002-2024 | Prywatność | Load: 2.73 | SQL: 1 | Uptime: 753 days, 9:47 h:m |
Wszelkie uwagi prosimy zgłaszać pod adresem eddy@heh.pl