2014-02-25 59 views
1

我想在我的數據庫表中插入多個變量作爲VALUES。這裏是我的代碼如何通過sql在數據庫表中插入多個變量?

include 'database_connect.php'; 

$namef= $_post["fnam"]; 
$lnamel= $_post["lnam"]; 
$addres= $_post["addres"]; 
$mail= $_post["email"]; 
$countr= $_post["countr"]; 
$db= $_post["do"]; 
$m= $_post["m"]; 
$pasword= $_post["pas"]; 

$insertSql= "INSERT INTO abcd(Id, First_name, Last_name, Address, Email, Country, Date_of_birth, Mobile_number, Password, Status) 
VALUES(NULL,'$namef', '$namel', '$addres', '$mail', '$countr', '$db', '$m', '$pasword', '0')"; 

if(mysql_query($insertSql)) 
    header("location: login_success.php"); 
else 
    header("location: wrong_inf.php"); 

這裏只ID和狀態字段插入等各個領域將會空,即使我給一些投入上的投入。

我不知道如何解決這個問題。

注:此處Idinteger類型和statustinyint類型和所有其他領域是varchar類型。

+0

嘗試的print_r($ _ POST),它說什麼? –

+2

嘗試將'$ _post [「」]'改爲'$ _POST ['']' – krishna

+0

您將ID設置爲NULL似乎很奇怪。那真的是你想要做的嗎? – TecBrat

回答

1

PHP變量是區分查詢是否被執行-sensitives

嘗試

$namef=$_POST["fnam"]; 
$lnamel=$_POST["lnam"]; 

等....

0

你建立後,看看是否被正確添加值,您可以通過寫出你的SQL字符串開頭:

echo $insertSql; 

如果在有空白的項目,請檢查您$_POST數據正在穿過正確:

var_dump($_POST); 

(正如克里希納指出的那樣,你使用時,你應該用大寫$ _ POST小寫$ _ POST)

而且,雖然你沒有問過這個問題,但你不應該直接從數組中直接寫入數據到你的數據庫,而不必先清理它。最好的辦法是使用PDO,但如果你打算使用mysql_*功能,然後在你寫的數據庫中的每個項目使用mysql_real_escape_string,像這樣:

$sql = 'INSERT INTO `table` (`column`) VALUES ("' . mysql_real_escape_string($_POST['item']) . '")'; 
2

對於使用後的變量,你需要使用

$_POST['fieldname'] 

,而不是作爲

$_post["fieldname"] 

由於$_POST陣列情況下在PHP

敏感

而且經常檢查正常或不使用mysql_error()和繼續

$query = mysql_query($insertSql) or die(mysql_error()); 

if($query) 
    { 
    // updated 
    } 
else 
    { 
    // not updated 
    } 

,最後我建議您不要使用mysql_*功能,並開始使用mysqli_*功能或PDO

0

的錯誤之一是取消定義變量是在它與$lnamel

1

$_REQUEST OR $_POST代替$_post

也使用退出SQL

replaece $namel調用header("..");後SQL執行之前逃脫防止注射

您修改的代碼是

include 'database_connect.php'; 

$namef= $_REQUEST["fnam"]; 
$lnamel= $_REQUEST["lnam"]; 
$addres= $_REQUEST["addres"]; 
$mail= $_REQUEST["email"]; 
$countr= $_REQUEST["countr"]; 
$db= $_REQUEST["do"]; 
$m= $_REQUEST["m"]; 
$pasword= $_REQUEST["pas"]; 

$namef = mysql_real_escape_string($namef); 
$lnamel = mysql_real_escape_string($lnamel); 
$addres = mysql_real_escape_string($addres); 
$mail= mysql_real_escape_string($mail); 
$countr = mysql_real_escape_string($countr); 
$db = mysql_real_escape_string($db); 
$m = mysql_real_escape_string($m); 
$pasword = mysql_real_escape_string($pasword); 

$insertSql= "INSERT INTO abcd(Id, First_name, Last_name, Address, Email, Country, Date_of_birth, Mobile_number, Password, Status) 
VALUES(NULL,'$namef', '$namel', '$addres', '$mail', '$countr', '$db', '$m', '$pasword', '0')"; 

if(mysql_query($insertSql)) 
{ 
    header("location: login_success.php"); 
    exit; 
} 
else 
{ 
    header("location: wrong_inf.php"); 
    exit; 
} 

注:mysql_*現已棄用用戶mysqli_* OR PDO

相關問題