0
我在.php文件中有一個表單。在動作中,我將$ _POST變量發送到另一個.php文件,其中我將表單/輸入結果添加到數據庫表中。通過字符串之間的變量'for'循環插入到MySQL表中
但是在一個特定的地方似乎有問題。表正確創建,有連接。但是,我無法插入數據。
這裏是我原來的.php文件的輸入。它們產生不出差錯:
<div class="form-group">
<input class="form-control" name="player<?php echo $i; ?>-fn" placeholder="First name" type="text" <?php if($i>5){echo "disabled ";}?> />
</div>
<div class="form-group">
<input class="form-control" name="player<?php echo $i; ?>-ln" placeholder="Last name" type="text" <?php if($i>5){echo "disabled ";}?> />
</div>
<div class="form-group">
<input class="form-control" name="player<?php echo $i; ?>-nr" placeholder="Number" type="number" <?php if($i>5){echo "disabled ";}?> />
</div> <?php } ?>
在PHP文件,其中i發送變量
,我創建一個表:
$team_name = $_POST["team"];
$query = "CREATE TABLE " . strtolower($team_name) . " (id int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,team_name varchar(255) NOT NULL,short_name varchar(255) NOT NULL)";
mysqli_query($_SESSION["mySqlLink"],$query);
這裏沒有錯誤,創建表。
誤差(未插入到表)似乎是這裏:
for($i=1; $i<=12; $i++){
if(!empty($_POST["player". $i ."-fn"]) && !empty($_POST["player". $i ."-ln"]) && !empty($_POST["player". $i ."-nr"])){
$first_name = $_POST["player". $i ."-fn"];
$last_name = $_POST["player". $i ."-ln"];
$number = $_POST["player". $i ."-nr"];
$query = "INSERT INTO ". $team_name ." (number,first_name,last_name) VALUES ('$number','$first_name','$last_name')";
mysqli_query($_SESSION["mySqlLink"],$query);
}
else break;
}
我有12個輸入,但沒有一個被插入到表中。什麼是正確的方法來做到這一點?
盧卡斯回答了。我們不需要標題或問題中的狀態。 – Drew
Mark Ravi的答案在箭頭下面帶有綠色的複選標記:p – Drew
**警告**:使用'mysqli'時,您應該使用[參數化查詢](http://php.net/manual/en/mysqli.quickstart .prepared-statements.php)和['bind_param'](http://php.net/manual/en/mysqli-stmt.bind-param.php)將用戶數據添加到您的查詢中。 **不要**使用字符串插值或連接來完成此操作,因爲您創建了嚴重的[SQL注入漏洞](http://bobby-tables.com/)。 **絕不**將'$ _POST'或'$ _GET'數據直接放入查詢中,如果有人試圖利用您的錯誤,這會非常有害。 – tadman