MySQLi验证

时间:2015-04-17 17:29:08

标签: php database mysqli

我是新手并且正在尝试学习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();

2 个答案:

答案 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