我有一個MySQL的問題。我使用PHP和mysqli將數據寫入準備好的表中。但是,如果我提交表單,哪些值必須寫入表中,則每個值都會在表中創建新行。這裏是我的代碼:插入爲每個值創造新行
session_start();
$_SESSION["Field"]=array("Name1","Name2","Name3",...);
if(!empty($_POST)){
foreach($_SESSION["Field"] as $Variable){
if(!empty($_POST[$Variable])){
$_SESSION[$Variable]=$_POST[$Variable];
}}}
if(array_key_exists("Database",$Collection)){
$Database=mysqli_connect("localhost","dbadmin","password","mydatabase");
mysqli_query($Database,"insert into Table1 (PHPSESSID) values ('".session_id()."')");
foreach($_SESSION["Field"] as $Variable){
if(!empty($_POST[$Variable])){
$_SESSION[$Variable]=mysqli_real_escape_string($Database,$_SESSION[$Variable]);
mysqli_query($Database,"insert into Table1 ($Variable) values ('{$_SESSION[$Variable]}')");
}}
mysqli_close($Database);
}
更新:(?)我認爲,這個問題是,因爲所有的變量應該是一個mysqli的任務。但我沒有發現任何關於它的事情。我對嗎?應該是這樣的想法mysqli_query($Database,"insert into Table1 (Variable1,Variable2,Variable3) values ('Value1','Value2','Value3')");
?
更新2:我認爲,它也可能是由於沒有提交插入任務,但沒有必要提交它,所以我不認爲這是問題所在。但我是MySQL和SQL的初學者,所以也許我錯了。
這兩個看起來像我的問題的解決方案,但我不知道,如何使用數組中的變量在foreach循環中。誰能幫我?
我是初學者,我不明白你的答案的第一部分。這兩個foreach循環不能在一起,因爲它們在我的代碼中的另一個地方。在編輯中,如果你的意思是mysqli_real_escape_string,那麼你忘了寫在這裏。 – aleskva
您可以添加一些小建議,問題在哪裏?或者小代碼的例子? – aleskva
它似乎是可行的。我會嘗試它,我會報告結果;-) – aleskva