Php 用新条目覆盖MYSQL数据库中的条目

Php 用新条目覆盖MYSQL数据库中的条目,php,mysql,database,replace,Php,Mysql,Database,Replace,我试图在每次有新数据可用时替换MYSQL数据库中以前的条目,我有以下PHP代码,但每次似乎都会添加新条目。请帮忙,谢谢 我试过使用REPLACE,但仍然不起作用,有人能告诉我我做错了什么吗 <?php header('Content-Type: application/json'); $data = json_decode(file_get_contents('php://input'), true); $mysqli = new mysqli("localhost","dbuser

我试图在每次有新数据可用时替换MYSQL数据库中以前的条目,我有以下PHP代码,但每次似乎都会添加新条目。请帮忙,谢谢

我试过使用REPLACE,但仍然不起作用,有人能告诉我我做错了什么吗

<?php

header('Content-Type: application/json');

$data = json_decode(file_get_contents('php://input'), true);

$mysqli = new mysqli("localhost","dbuser","Pa55uu0Rd","iewdb");

if (mysqli_connect_errno())
{
    echo json_encode(array('error' => 'Failed to connect to MySQL: ' . mysqli_connect_error() ));
    return;
}

if(!$data)
{
    echo json_encode(array('error' => 'Error input data'));
    return;
}
    $usernme = $data['usernme'];
    $longitude = $data['longitude'];
    $latitude = $data['latitude'];

$user = $mysqli->query("SELECT id FROM Users WHERE usernme = '$usernme' LIMIT 1");  

$user_id = $user->fetch_object();

if(!$user_id)
{     
     $mysqli->query("INSERT INTO Users (usernme) VALUES ('$usernme');");

     $user_id->id = $mysqli->insert_id;
}

if($longitude && $latitude)
{
    $mysqli->query("REPLACE INTO Locations (User_id,Longitude, Latitude) VALUES ($user_id->id,$longitude,$latitude);");
} 

$mysqli->close();

echo json_encode(array('user_id' => $user_id->id));

逻辑:您可以删除旧条目,然后将新条目添加到数据库中,而不是替换旧条目,以防性能下降


因此,您必须只编写一个删除和插入查询,而不是3个查询逻辑:您可以删除旧条目,然后将新条目添加到数据库中,以确保性能


因此,您必须只编写一个删除和插入查询,而不是3个查询逻辑:您可以删除旧条目,然后将新条目添加到数据库中,以确保性能


因此,您必须只编写一个删除和插入查询,而不是3个查询逻辑:您可以删除旧条目,然后将新条目添加到数据库中,以确保性能


因此,您只需编写一个删除和插入查询…而不是3个查询

使用类似于下面的更新查询

UPDATE MyTable
SET User_id = 'USER_ID_VALUE', Longitude='LONGITUDE_VALUE', Latitude='LATITUDE_VALUE' 
WHERE SomeOtherColumn LIKE '%PATTERN%'

使用像这样的更新查询

UPDATE MyTable
SET User_id = 'USER_ID_VALUE', Longitude='LONGITUDE_VALUE', Latitude='LATITUDE_VALUE' 
WHERE SomeOtherColumn LIKE '%PATTERN%'

使用像这样的更新查询

UPDATE MyTable
SET User_id = 'USER_ID_VALUE', Longitude='LONGITUDE_VALUE', Latitude='LATITUDE_VALUE' 
WHERE SomeOtherColumn LIKE '%PATTERN%'

使用像这样的更新查询

UPDATE MyTable
SET User_id = 'USER_ID_VALUE', Longitude='LONGITUDE_VALUE', Latitude='LATITUDE_VALUE' 
WHERE SomeOtherColumn LIKE '%PATTERN%'

这是我解决这个问题的方法,效果很好。我决定去更新,你可以看到下面,因为我认为这是最整洁的,谢谢你的帮助

<?php

header('Content-Type: application/json');

//get parameters
$data = json_decode(file_get_contents('php://input'), true);

// Create connection
$mysqli = new mysqli("localhost","dbuser","Pa55w0rd","ewdb");

// Check connection
if (mysqli_connect_errno())
{
   echo json_encode(array('error' => 'Failed to connect to MySQL: ' . mysqli_connect_error() ));
   return;
}

if(!$data)
{
    echo json_encode(array('error' => 'Error input data'));
    return;
}

    $usernme = $data['usernme'];
    $longitude = $data['longitude'];
    $latitude = $data['latitude'];

$user = $mysqli->query("SELECT id FROM Users WHERE usernme = '$usernme' LIMIT 1");  

$user_id = $user->fetch_object(); 
if(!$user_id) 
{     
     $mysqli->query("INSERT INTO Users (usernme) VALUES ('$usernme');");

     $user_id->id = $mysqli->insert_id; 

     $mysqli->query("INSERT INTO Locations (User_id) VALUES ($user_id->id);");

}

if($longitude && $latitude)
{
    $mysqli->query("UPDATE Locations SET Longitude = $longitude, Latitude = $latitude WHERE User_id = $user_id->id;");

} 

/* close connection */
$mysqli->close();

echo json_encode(array('user_id' => $user_id->id));

这是我解决这个问题的方法,效果很好。我决定去更新,你可以看到下面,因为我认为这是最整洁的,谢谢你的帮助

<?php

header('Content-Type: application/json');

//get parameters
$data = json_decode(file_get_contents('php://input'), true);

// Create connection
$mysqli = new mysqli("localhost","dbuser","Pa55w0rd","ewdb");

// Check connection
if (mysqli_connect_errno())
{
   echo json_encode(array('error' => 'Failed to connect to MySQL: ' . mysqli_connect_error() ));
   return;
}

if(!$data)
{
    echo json_encode(array('error' => 'Error input data'));
    return;
}

    $usernme = $data['usernme'];
    $longitude = $data['longitude'];
    $latitude = $data['latitude'];

$user = $mysqli->query("SELECT id FROM Users WHERE usernme = '$usernme' LIMIT 1");  

$user_id = $user->fetch_object(); 
if(!$user_id) 
{     
     $mysqli->query("INSERT INTO Users (usernme) VALUES ('$usernme');");

     $user_id->id = $mysqli->insert_id; 

     $mysqli->query("INSERT INTO Locations (User_id) VALUES ($user_id->id);");

}

if($longitude && $latitude)
{
    $mysqli->query("UPDATE Locations SET Longitude = $longitude, Latitude = $latitude WHERE User_id = $user_id->id;");

} 

/* close connection */
$mysqli->close();

echo json_encode(array('user_id' => $user_id->id));

这是我解决这个问题的方法,效果很好。我决定去更新,你可以看到下面,因为我认为这是最整洁的,谢谢你的帮助

<?php

header('Content-Type: application/json');

//get parameters
$data = json_decode(file_get_contents('php://input'), true);

// Create connection
$mysqli = new mysqli("localhost","dbuser","Pa55w0rd","ewdb");

// Check connection
if (mysqli_connect_errno())
{
   echo json_encode(array('error' => 'Failed to connect to MySQL: ' . mysqli_connect_error() ));
   return;
}

if(!$data)
{
    echo json_encode(array('error' => 'Error input data'));
    return;
}

    $usernme = $data['usernme'];
    $longitude = $data['longitude'];
    $latitude = $data['latitude'];

$user = $mysqli->query("SELECT id FROM Users WHERE usernme = '$usernme' LIMIT 1");  

$user_id = $user->fetch_object(); 
if(!$user_id) 
{     
     $mysqli->query("INSERT INTO Users (usernme) VALUES ('$usernme');");

     $user_id->id = $mysqli->insert_id; 

     $mysqli->query("INSERT INTO Locations (User_id) VALUES ($user_id->id);");

}

if($longitude && $latitude)
{
    $mysqli->query("UPDATE Locations SET Longitude = $longitude, Latitude = $latitude WHERE User_id = $user_id->id;");

} 

/* close connection */
$mysqli->close();

echo json_encode(array('user_id' => $user_id->id));

这是我解决这个问题的方法,效果很好。我决定去更新,你可以看到下面,因为我认为这是最整洁的,谢谢你的帮助

<?php

header('Content-Type: application/json');

//get parameters
$data = json_decode(file_get_contents('php://input'), true);

// Create connection
$mysqli = new mysqli("localhost","dbuser","Pa55w0rd","ewdb");

// Check connection
if (mysqli_connect_errno())
{
   echo json_encode(array('error' => 'Failed to connect to MySQL: ' . mysqli_connect_error() ));
   return;
}

if(!$data)
{
    echo json_encode(array('error' => 'Error input data'));
    return;
}

    $usernme = $data['usernme'];
    $longitude = $data['longitude'];
    $latitude = $data['latitude'];

$user = $mysqli->query("SELECT id FROM Users WHERE usernme = '$usernme' LIMIT 1");  

$user_id = $user->fetch_object(); 
if(!$user_id) 
{     
     $mysqli->query("INSERT INTO Users (usernme) VALUES ('$usernme');");

     $user_id->id = $mysqli->insert_id; 

     $mysqli->query("INSERT INTO Locations (User_id) VALUES ($user_id->id);");

}

if($longitude && $latitude)
{
    $mysqli->query("UPDATE Locations SET Longitude = $longitude, Latitude = $latitude WHERE User_id = $user_id->id;");

} 

/* close connection */
$mysqli->close();

echo json_encode(array('user_id' => $user_id->id));

请注意,没有订单的限制是(相当)没有意义的
用户id
位置
表上的主键还是唯一索引?无论如何,请使用
UPDATE
而不是
REPLACE
。请注意,不按顺序进行限制是(相当)没有意义的
User\u id
位置表上的主键还是唯一索引?无论如何,请使用
UPDATE
而不是
REPLACE
。请注意,不按顺序进行限制是(相当)没有意义的
User\u id
位置表上的主键还是唯一索引?无论如何,请使用
UPDATE
而不是
REPLACE
。请注意,不按顺序进行限制是(相当)没有意义的
User\u id
位置表上的主键还是唯一索引?无论如何,请使用
UPDATE
而不是
REPLACE
。谢谢您的帮助,我已经使用了UPDATE,它工作正常。我已经在下面实现了您的解决方案。感谢您的帮助,我已经完成了更新,并且运行良好。我已经在下面实现了您的解决方案。感谢您的帮助,我已经完成了更新,并且运行良好。我已经在下面实现了您的解决方案。感谢您的帮助,我已经完成了更新,并且运行良好。我已经在下面实现了您的解决方案。