[英]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 address
是textarea
,而我的操作文件上的名稱是變量$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.