2012-07-09 32 views
0
if(isset($_POST['usersadded'])){  
$value = $_POST['usersadded']; 
$lines = explode("\n", $value); 
foreach ($lines as $line) { 
mysql_query("INSERT INTO Users_$support (Users) VALUES ('$line')"); 
}; 

我已經有一個到數據庫的有效連接了,所以這並不是錯的。但它從來沒有提交任何東西:(文本區域值爆炸並提交給MySQL數據庫

$支持是一個數字,如19

+1

首先,你的代碼中有一個巨大的[SQL注入](http://bobby-tables.com/)漏洞。其次,試着用'\ r \ n'爆炸一下,你的代碼最終會在查詢字符串中產生真正的回車符,這可能是MySQL不喜歡的。 – DaveRandom 2012-07-09 10:48:58

+1

'var_dump($ lines);'查看裏面的內容並在查詢後添加'或者死(mysql_error());'。我認爲這個腳本是用於在開發過程中快速插入的,但如果我誤解了它並且它將會發布的項目的一部分,我同意@DaveRandom關於SQL注入。 – Leri 2012-07-09 10:52:43

+0

哦。我傾向於編碼,然後確保它,但我沒有注意到。感謝您指出。我想我可以使用mysql_real_escape_string? 我不知道我明白MySQL的意思。 – Christian 2012-07-09 10:53:50

回答

0

我總是建議將裏面的PHP變量的東西時,使用此SQL語法。

mysql_query(" 
INSERT INTO 
    `table_name` 
SET 
    `field` = '" . $field_variable . "' 
"); 

該錯誤可能當你做正確的查詢字符串裏面不語你的PHP變量出現。

+0

謝謝:)它幫助 – Christian 2012-07-11 18:35:04

+0

那麼這是偉大的,然後:) – 2012-07-12 04:52:18

0

試試這個

mysql_query("INSERT INTO Users_$support (Users) VALUES (\"'\".$line.\"'\")");