php与mysql,代码没有插入我的表

时间:2012-12-13 16:11:30

标签: php mysql sql syntax procedure

大编辑:

新脚本:

<?php
error_reporting(E_ALL|E_NOTICE);
$nazwabazydanych = "projekt";

$pesel = mysql_real_escape_string($_POST['pesel']);
$imie = mysql_real_escape_string($_POST['imie']);  
$nazwisko = mysql_real_escape_string($_POST['nazwisko']);
$telefon = mysql_real_escape_string($_POST['telefon']);
$adres = mysql_real_escape_string($_POST['adres']);
$nr_konta = mysql_real_escape_string($_POST['nr_konta']);
$zarobek = mysql_real_escape_string($_POST['zarobek']);

if (!$pesel || !$imie || !$nazwisko || !$telefon || !$adres || !$nr_konta || !$zarobek)

 {
        print "Nie zostały wypełnione wszystkie pola";
        exit;
 }


$db = mysql_pconnect("localhost", "root", "");
if (!$db)  
        {  
        print "Nie można nawiązać połączenia z bazą danych";
        exit;
        }

mysql_select_db("$nazwabazydanych");

$query = mysql_query("CALL dodaj_osobe ('$pesel','$imie','$nazwisko','$telefon','$adres','$nr_konta','$zarobek')"); 

?>

动作:

<form action="lool.php" method="post">

PESEL: <input type="text" name="pesel" maxlength=11 size=12><br><br> 
Imię: <input type="text" name="imie" maxlength=45 size=46><br><br>
Nazwisko: <input type="text" name="nazwisko" maxlength=45 size=46><br><br>
Telefon: <input type="text" name="telefon" maxlength=9 size=10><br><br>
Adres: <input type="text" name="adres" maxlength=45 size=46><br><br>
Numer konta: <input type="text" name="nr_konta" maxlength=20 size=21><br><br>
Zarobek: <input type="text" name="zarobek" maxlength=8 size=9><br><br>
<input type="submit" value="Dodaj klienta">
</form>

更新错误:

NONE!

谢谢你们,但我有一个问题: 如果例如“nr_konta”或“pesel”或“telefon”数字太低,我该如何发送错误?

3 个答案:

答案 0 :(得分:2)

你需要使用$ _POST数组获取POST变量,除非你有register_globals

$pesel = mysql_real_escape_string($_POST['pesel']);
$imie = mysql_real_escape_string($_POST['imie']);  
$nazwisko = mysql_real_escape_string($_POST['nazwisko']);
$telefon = mysql_real_escape_string($_POST['telefon']);
$adres = mysql_real_escape_string($_POST['adres']);
$nr_konta = mysql_real_escape_string($_POST['nr_konta']);
$zarobek = mysql_real_escape_string($_POST['zarobek']);

// Put this after so you don't have to restate the $_POST vars
if (!$pesel || !$imie || !$nazwisko || !$telefon || !$adres || !$nr_konta || !$zarobek)

 {
        print "Nie zostały wypełnione wszystkie pola";
        exit;
 }

答案 1 :(得分:2)

使用print_r($_POST)您应该看看是否获得了价值。在您的代码中,问题似乎是您没有使用正确的索引。注意Pesel没有通知,但是imie没有。

你的两个代码:

$pesel = mysql_real_escape_string($_POST['pesel']);
$imie = mysql_real_escape_string($_POST['$imie']);

请注意,您有'$imie'作为索引。我在这里猜测复制和粘贴错误。从html看来,元素名为imie。 试试这个:

$imie = mysql_real_escape_string($_POST['imie']);

答案 2 :(得分:1)

您实际上并未获得$ _POST值。

应该是

$pesel = mysql_real_escape_string($_POST['pesel']);
$imie = mysql_real_escape_string($_POST['imie']);  
$nazwisko = mysql_real_escape_string($_POST['nazwisko']);
$telefon = mysql_real_escape_string($_POST['telefon']);
$adres = mysql_real_escape_string($_POST['adres']);
$nr_konta = mysql_real_escape_string($_POST['nr_konta']);
$zarobek = mysql_real_escape_string($_POST['zarobek']);

那些应该在你的

之前

if (!$pesel || !$imie || !$nazwisko || !$telefon || !$adres || !$nr_konta || !$zarobek)

此外,您需要从$值中删除$_POST

$_POST['$imie']

应该是:

$_POST['imie']