我想检查列id中是否已存在值$ id。 如果我想调用查询,否则我想再做一次查询。
似乎很容易,但不适合我。
这是重要的代码
if (isset($_GET['data'])) {
$data = json_decode($_GET['data'], true);
$id = $data['id'];
$latitude = $data['latitude'];
$longitude = $data['longitude'];
$timestamp = $data['timestamp'];
$result = mysql_query("SELECT * FROM locatie WHERE id='$id'");
if("id='$id'")
{
$query = "Update locatie
SET longitude = '$longitude',
latitude = '$latitude',
timestamp = '$timestamp'
WHERE id = '$id'";}
else
//Als het nummer bekend is
{
//Als het een nieuw nummer is
$query = sprintf("INSERT INTO locatie (id, longitude, latitude, timestamp) VALUES ('%s', '%s', '%s', '%s') ", mysql_real_escape_string($id) , mysql_real_escape_string($longitude), mysql_real_escape_string($latitude), mysql_real_escape_string($timestamp));}
$result = mysql_query($query) or die('Query failed: ' . mysql_error());
echo "OK";
// Free resultset
mysql_free_result($result);
}
但现在代码不会做任何事情,我知道这两个查询都可以正常工作,但是当我从locatie中选择时它不会....
任何帮助将不胜感激
答案 0 :(得分:2)
您可以简单地使用:
if( $result && mysql_num_rows($result) )
正在检查查询中已有的id
。
由于您没有检查是否有有效的结果检查,我将其添加到if中。
注意:不推荐使用所有mysql *函数,而是使用pq函数的mysqli。
答案 1 :(得分:2)
看到您正在更新(如果它存在),或者如果不存在则插入,您可以使用INSERT ... ON DUPLICATE KEY UPDATE
示例(应该可以工作但未经测试)
$sql = sprintf("INSERT INTO locatie (id, longitude, latitude, timestamp) VALUES ('%s', '%s', '%s', '%s') ", mysql_real_escape_string($id) , mysql_real_escape_string($longitude), mysql_real_escape_string($latitude), mysql_real_escape_string($timestamp));
$sql .= " ON DUPLICATE KEY UPDATE longitude=VALUES(longitude), latitude=VALUES(latitude),timestamp=VALUES(timestamp)";
答案 2 :(得分:1)
mysql_num_rows()获取结果中的行数 http://in2.php.net/manual/en/function.mysql-num-rows.php
if($result && mysql_num_rows($result)>0){
//$id already exist in the column id.
}else {
}
答案 3 :(得分:1)
$result = mysql_query("SELECT * FROM locatie WHERE id='$id'");
if(mysql_num_rows($result) > 0)
//do something
答案 4 :(得分:1)
如果您使用 REPLACE ,则无需执行任何 id 检查。
例如:
REPLACE INTO locatie (id, longitude, latitude, timestamp) VALUES (?,?,?,?)
答案 5 :(得分:0)
您可以使用该方式的查询
if($result = mysql_query("SELECT * FROM locatie WHERE id='$id'"))
{
// Found
}
else
{
// Not found
}
仅当资源不为空时才会返回true。