2012-01-25 23 views
0

私のテーブルユーザにユーザレコードを保存しようとしていますが、今のところすべてのデータが格納されていて、addressレコードではない奇妙な問題が発生しています。1つのレコードがmysql dbに格納されない

は、ここで私は確信して、次の

  • フォームfield addresstextareaであり、同じ名前が私のアクションファイルに$Address変数である製私のフォームコード

    function RegisterUser($firstName,$LastName,$Gender,$Address,$phoneNumber,$mobileNumber,$facebookAccount,$userName,$password,$emailAddress) { 
    
        $dob = $_POST['Year'] . '-' . $_POST['Month'] . '-' .$_POST['Day']; 
    
    $insertVisitor = "INSERT INTO user (userFirstName,userLastName,userDateOfBirth,userGender,userAddress,userPhoneNumber,userMobileNumber,userFacebookAccount,userUserName,userPassword,userEmailAddress) VALUES ('$FirstName','$LastName','$dob','$Gender','$Address','$phoneNumber','$mobileNumber','$facebookAccount','$userName','$password','$emailAddress')"; 
    
    mysql_query("$insertVisitor") or die (mysql_error()); 
    
    
    
    } 
    

    です。

  • mysqlデータベースでは、レコードuserAddressはテキストタイプであり、デフォルトの長さは0です。

私は間違っていましたか?

答えて

2

$Addressと表示されている間は、SQLでは$addressを参照しています。

変数は大文字と小文字を区別します。

function RegisterUser($firstName,$LastName,$Gender,$Address, ... 
                ^
$insertVisitor = "INSERT INTO user .... ,'$address','$phoneNumber', ..)" 
             ^

クイックノート(可能性のmysql-注入脇):あなたは再びそれを引用する必要はありませんので、$insertVisitorは、すでに文字列である:

mysql_query("$insertVisitor") or die(mysql_error()); 
mysql_query($insertVisitor) or die(mysql_error()); //<-- 
+0

OKが完了しましたが、問題は残ります。 –

+0

ありがとうそれは働いた:) –

1

userAddressのテキストフィールドの長さは0より大きくする必要があります.100文字などのアドレスに期待する値に設定してみてください。

+0

私はこれを試しましたが、データベースは0の長さに変更し直します。 –

2

最初に間違っていたのは、ギャップが開いているSQLインジェクションホールです。

第2に、PHP変数は大文字と小文字が区別されます。関数の引数リストには$Address(大文字のA)があり、クエリ文字列には$address(小A)が使用されています。したがって、存在しない全く異なる変数を使用しているため、PHPが空の値として自動的にインスタンス化します。

1

機能が$Addressを取得し、クエリあなたに$addressを取得してください。これはPHP変数が大文字と小文字を区別するため、2つの異なる変数です。

+0

私はそれを変更しますが、問題が残っています –

+0

何かエラーを取得するか、データベースのフィールドが空白ですか? – Kypros

関連する問題