$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 :(得分: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."')");
}
答案 1 :(得分:0)
如果对托管PHP的Web服务器有多个同时请求,则select可能不会返回多个请求的结果,然后由于每个此类请求执行插入,可能会有多个插入
如果您没有运行Windows并且只有一个Web服务器,则可以使用PHP的信号量同步对此代码的访问。
但更好的是,你能在mysql的表中对这一列的值设置一个唯一约束吗?
答案 2 :(得分:0)
虽然您的代码是正确的,但不应再次插入,但
您应该在字段中添加唯一键,然后使用“插入忽略”
"INSERT IGNORE INTO table_name(col_name)VALUES('$val')"