<?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( $aFirstName, $aLastName, $aAddr, $aPos )
{
// Przygotowanie wyrażenia SQL INSERT
$aSQL = "insert into employees ( first, last, address, ";
$aSQL .= "position ) values ( '$aFirstName', '$aLastName', ";
$aSQL .= "'$aAddr', '$aPos' )";
// Przyłączenie do serwera i wykonanie instrukcji INSERT
$aDBLink = mysql_connect( "localhost", "userek", "passwordzik" ); // bazę danych mam. if ( !empty( $aDBLink ) ) {
{
$aQResult = mysql_query( $aSQL, $aDBLink ); // z tą linijką wg mnie jest problem. // wszystkie potrzebne tabele istnieją, spokojnie mogę z nich wczytywać wartości
// używając select * from
if ( $aQResult == True )
{
}
else
{
// print( "Błąd wykonania zapytania" );
$aResult = -1;
}
}
else
{
// print( "Błąd wyboru bazy danych" );
$aResult = -2;
}
}
else
{
// print( "Błąd przy podłączaniu do bazy danych" );
$aResult = -3;
}
return $aResult;
}
?>
<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
$aResult = InsertRecord( $FirstName, $LastName,
$Address, $Position );
if ( $aResult > 0 )
{
print( "Dodano nowy wiersz, ID = $aResult" ); }
else
{
print( "Błąd funkcji InsertRecord. Kod błędu = $aResult" ); }
}
?>
Proszę wpisać dane nowego pracownika:
<form action="
<?php echo $PHP_SELF ?>" method="post">
Imię: <input type="text" name="FirstName" maxlength="20">
Nazwisko: <input type="text" name="LastName" maxlength="20">
Adres: <input type="text" name="Address" maxlength="255">
Stanowisko: <input type="text" name="Position" maxlength="50">
<input type="submit" name="Submit" value="Wyślij">
</form>
</body>
</html>
Otrzymuję w html po wpisaniu wartości:
Cytat
Błąd funkcji InsertRecord. Kod błędu = -1
Wcześniej nie otrzymuję żadnych błędów.
Informacje z phpinfo():
Server API: Apache 2.0 Handler
display_errors: On
register_globals: On
(coś jeszcze będzie potrzebne? )
Nie mogę za nic zmusić mysql_query do działania. Próbowałem do zmiennej $aSQL przypisywać wartości z ` czy '' (podwójny znak apostrofu bodajże (IMG:
http://forum.php.pl/style_emoticons/default/tongue.gif) ) i nic.
Liczę, że guru na tym forum wskaże, gdzie biedaczek popełnia błąd. (IMG:
http://forum.php.pl/style_emoticons/default/biggrin.gif)
Pozdrawiam
Ten post edytował NPDist66 1.02.2009, 18:27:55