2015-10-13 2 views
-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']."') 
    ");  
} 
+0

Вы должны проверить и вернуть SQL ошибки. Нет допустимого значения sql, если 'TABLE_PREFIX' не является пробелом или пустой строкой. –

+1

Является ли это 'mysqli', PDO или что-то еще? Вы столкнулись с серьезными проблемами из-за двух [ошибок SQL-инъекций] (http://bobby-tables.com/), потому что ни одно из ваших значений [правильно экранировано] (http://bobby-tables.com/php). – tadman

+0

@tadman, это 'MYSQL' – user3745594

ответ

0

Вы можете попробовать следующий код, если вопрос с spiting переменной

$allnames = 'John,Peter,Maya'; 
$arr = explode(",",$allnames); 
$name_1=$arr[0]; 
$name_2=$arr[1]; 
$name_3=$arr[3]; 
Смежные вопросы