簡體   English   中英

一條記錄不存儲到mysql數據庫中

[英]one record doesn't store into mysql db

我正在嘗試將用戶記錄存儲到我的表用戶中,現在發生了一個奇怪的問題,該問題存儲了所有數據,但沒有存儲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());



}

我確保以下

  • 表單field addresstextarea ,而我的操作文件上的名稱是變量$Address

  • 在mysql數據庫中,記錄userAdddress是文本類型,默認長度為0。

我做錯了什么?

您做錯的第一件事是打開一個巨大的SQL注入孔。

第二件事是PHP變量區分大小寫。 函數的參數列表具有$Address (大寫A),並且您在查詢字符串中使用了$address (小A)。 因此,您使用的是一個完全不同的變量,該變量不存在,導致PHP將其自動實例化為空白值。

您在SQL中引用$address ,而參數說$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()); //<--

您的userAddress文本字段的長度應大於0-嘗試將其設置為期望的地址,例如100個字符。

該函數獲取$Address ,在您的查詢中,您嘗試獲取$address這是兩個不同的變量,因為PHP變量區分大小寫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM