我是新手并且正在尝试学习MySQLi数据库以与我的Android程序进行通信。我在这里需要一点帮助,因为我正在尝试验证用户名。如果username exists = update,则添加新记录。我想我搞砸了某个地方,它不允许我添加新记录..
以下是代码:
$id = $_GET['id'];
$username = $_GET['username'];
$latitude = $_GET['latitude'];
$longitude = $_GET['longitude'];
$query = "SELECT * FROM ContactDB (username, latitude, longitude)
WHERE username='$username');";
$result = $db->query ($query);
if($row = mysqli_fetch_object($result){
$query1 = "update ContactDB set username='$username',latitude='$latitude',
longitude='$longitude' where id='$id'";
} else {
$query1 = "insert into ContactDB (username, latitude, longitude)
values ('$username', '$latitude', '$longitude');";
}
$result = $db->query ($query1);
$query2 = "SELECT * from ContactDB";
$result = $db->query ($query2);
print ("<?xml version=\"1.0\" ?>");
print "\n<database>\n";
while($row = mysqli_fetch_object($result))
{
print " <record>\n";
print " <id>$row->id</id>\n";
print " <username>$row->username</username>\n";
print " <latitude>$row->latitude</latitude>\n";
print " <longitude>$row->longitude</longitude>\n";
print " </record>\n";
}
print "</database>\n";
$db->close();
答案 0 :(得分:0)
你需要在$ result之后添加另一个“)”以关闭if语句:
if($row = mysqli_fetch_object($result){
并且
$query = "SELECT * FROM ContactDB (username, latitude, longitude)
WHERE username='$username');";
应该是
$query = "SELECT * FROM ContactDB
WHERE username='$username';";
你有额外的')'和'(用户名,纬度,经度)'不属于该查询。
此外,您需要将对象用于$ id:
$query1 = "update ContactDB set username='$username',latitude='$latitude',
longitude='$longitude' where id='".$row->id."'";
我会添加以下内容,以便您获得任何PHP错误:
error_reporting(E_ALL);
答案 1 :(得分:0)
您也可以使用一个MySQL查询执行此操作,无需在代码中使用if / else块。
INSERT ...在DUPLICATE KEY UPDATE ... https://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html