2013-11-27 5 views
-2
$Link= mysql_connect("localhost", "root", "", ""); 
query = mysql_query($Link,"SELECT col_name FROM table_name WHERE col_name='$val'"); 
$num=mysql_num_rows($query); 
if($num==0){ 
    $query1 = mysql_query($Link,"INSERT INTO table_name(col_name)VALUES('$val')");) 
} 

В то же время будет запрошено несколько запросов на запрос. Я использовал этот метод, чтобы избежать множественной вставки, но иногда вставляются несколько строк. Пожалуйста, помогите мне. Заранее спасибо.Избегайте множественной вставки, когда запрос на вставку вызывается несколько раз в одно и то же время

спасибо за вашу помощь ..

Я м не называю этот код в цикле, но несколько вызовов в то же время от разных пользователей сделаны.

+0

Избегайте использования в mysql_ * попытаться использовать mysqli_ * http://us3.php.net/manual/en/book.mysqli.php –

ответ

0

mysql_query Синтаксис: resource mysql_query (string $query [, resource $link_identifier = NULL ])

$query1 = mysql_query("INSERT INTO table_name (col_name)VALUES('".$val."')"); 

Полный код:

$Link= mysql_connect("localhost", "root", "", ""); 
$query = mysql_query($Link,"SELECT col_name FROM table_name WHERE col_name='".$val."'"); 
$num=mysql_num_rows($query); 
if($num==0){ 
    $query1 = mysql_query("INSERT INTO table_name(col_name)VALUES('".$val."')"); 
} 
0

При наличии нескольких одновременных запросов к веб-сервер (ы), что хоста, PHP, то выберите не может вернуться никаких результатов для более одного из этих запросов, а затем может быть несколько вставок из-за каждого такого запроса, выполняющего вставку.

Если вы не используете Windows и имеете только один веб-сервер, вы можете синхронизировать доступ к этому коду с помощью семафоров PHP.

Но даже лучше, можете ли вы установить уникальное ограничение на значение этого столбца в таблице в mysql?

0

Хотя ваш код правильно, и это не следует вставить снова, но

Вы должны добавить уникальный ключ к вашей области, а затем использовать Вставить Игнорирование

"INSERT IGNORE INTO table_name(col_name)VALUES('$val')" 
Смежные вопросы