如何通过PHP更新/插入MySQL表中的数据
问题描述:
我是PHP新手..如果数据存在并且如果尚未存在,则需要帮助来创建PHP代码以更新MySQL中的数据,然后在MySQL中插入数据。我所做的PHP代码要做到这一点,但是当数据已经存在它是将数据插入..在MySQL ..请帮助如何通过PHP更新/插入MySQL表中的数据
$con = mysql_connect('localhost','root','root');
$db = mysql_select_db('gamingtracker',$con);
$query = "SELECT * FROM servers WHERE sgame='$game_insert'";
$result = mysql_query($query, $con);
While($row = mysql_fetch_array($result)) {
$id = @$row['id'];
$sname = @$row['sname'];
$sgame = @$row['sgame'];
$minplayers = @$row['minplayers'];
$maxplayers = @$row['maxplayers'];
$ip = @$row['ip'];
$port = @$row['port'];
$map = @$row['map'];
}
$sname1= html_entity_decode("{$server['s']['name']}");
if(@$sname=="{$server['s']['name']}"
AND @$sgame=="{$server['s']['game']}"
AND @$minplayers=="{$server['s']['players']}"
AND @$maxplayers=="{$server['s']['playersmax']}"
AND @$ip=="{$server['b']['ip']}"
AND @$port=="{$server['b']['c_port']}"
AND @$map=="{$server['s']['map']}")
{
$query1 = "UPDATE servers
SET sname='$sname1', sgame='{$server['s']['game']}', minplayers='{$server['s']['players']}', maxplayers='{$server['s']['playersmax']}', ip='{$server['b']['ip']}', port='{$server['b']['port']}', map='{$server['s']['map']}'
WHERE ip='{$server['b']['ip']}', port='{$server['b']['port']}', sgame='{$server['s']['game']}'";
$result1 = mysql_query($query1, $con);
}
else {
$query1 = "INSERT INTO servers (id,sname,sgame,maxplayers,minplayers,ip,port,map) VALUES ('','$sname1','{$server['s']['game']}','{$server['s']['players']}','{$server['s']['playersmax']}','{$server['b']['ip']}','{$server['b']['c_port']}','{$server['s']['map']}')";
$result1 = mysql_query($query1, $con);
}
答
所以,你只需要每个IP,端口和sgame的独特组合的一个条目?最直接的方法是让MySQL处理这个问题。
首先,在表格中为这些字段创建唯一索引。在mysql中运行以下代码:
CREATE UNIQUE INDEX ip_port_sgame ON servers (ip, port, sgame);
然后,使用REPLACE而不是运行INSERT查询。因此,只要改变你的PHP这一行:
UPDATE servers
到
REPLACE INTO servers
+0
我不明白这项技术..请进一步解释 – 2014-09-13 20:05:13
+0
请帮助我..请进一步解释 – 2014-09-14 13:58:56
为什么要补充'@'everyhwere? – 2014-09-13 19:27:40
要不要错误..如果变量为空 – 2014-09-13 19:28:30
@u_mulder?帮助我plz .. – 2014-09-13 19:37:32