-1
我有一個變量MySQL的插入多行從爆炸
$allnames = 'John,Peter,Maya';
,我試圖檢查每名在user
表存在,如果它存在我想在另一個表中插入每個名稱爲一行。
$allnames = 'John,Peter,Maya';
$names = explode(",", $allnames);
foreach($names as $name)
{
$checkusers = $db->query_read("SELECT username,userid FROM " . TABLE_PREFIX . " `user` WHERE username = '".$name."' ");
$results = $db->fetch_array($checkusers);
$db->query_write("INSERT INTO " . TABLE_PREFIX . " `invite_users` (username) VALUES ('".$results['userid']."')
");
}
解決辦法:
$string = mysql_real_escape_string($_POST['userstag']);
$arr = explode(",",$string);
$sql = $db->query_read("SELECT username FROM " . TABLE_PREFIX . " `user` WHERE username IN ('".implode("', '", $arr) . "')");
while($r = $db->fetch_array($sql))
{
$sqli = $db->query_write("INSERT INTO " . TABLE_PREFIX . " invite_users (username) VALUES ('".$r['username']."')
");
}
您需要檢查並返回SQL錯誤的吐涎。如果'TABLE_PREFIX'不是空格或空字符串,那麼沒有辦法證明是有效的sql。 –
這是'mysqli',PDO還是別的?由於有兩個[SQL注入漏洞](http://bobby-tables.com/),所以你在這裏遇到了嚴重問題,因爲你的任何值都沒有[正確轉義](http://bobby-tables.com/php )。 – tadman
@tadman,它是'MYSQL' – user3745594