2017-02-20 33 views
-2

У меня проблема с приложением в PHP. Проблема заключается в том, что она делает несколько записей в базе данных. В чем проблема?дублировать записи INSERT в mysql

$sql = "INSERT INTO user_list (ip,verified,rank)VALUES ('$ip','$verified','$rank')"; 
      $mysqli->query($sql); 

Спасибо

+4

код, показанный будет вставлять (или, по крайней мере, попытка) ровно одну запись. (Если, конечно, уязвимость SQL-инъекции не используется для вставки большего количества записей.) – David

+0

вы уверены, что не выполняете эту функцию или дважды запрашиваете? Могло быть и другое, но Гоблины никогда не расскажут (их секреты). –

+0

Моя функция работает с API, а приложение копирует данные в MySQL, но несколько копий одинаковы и имеют правильный идентификатор. Что вызвало это? – bdev

ответ

0

Правильный путь:

1)подготовки и связывания значения с mysqli_stmt::prepare и mysqli_stmt::bind_param функции:

// connection object instantiating 
$mysqli = new mysqli(......); 
... 
$stmt = $mysqli->prepare("INSERT IGNORE INTO user_list (ip, verified, rank) VALUES (?, ?, ?)"; 
$stmt->bindparam('sii', $id, $verified, $rank); 
$stmt->execute(); 
... 

2) с помощью INSERT ... IGNORE ИЛИ INSERT ... ON DUPLICATE KEY UPDATE синтаксис, чтобы избежать/игнорировать повторяющиеся вставки