MySQL查询发送成功,但数据库字段保持空白

时间:2013-04-22 07:35:43

标签: php mysql database

以下2个查询是php中回显的结果:

UPDATE glymping_userdata
SET current_location_gps = '51.9171115;4.484812'
WHERE id = 1

UPDATE glymping_user_has_appointments
SET status = 'enroute',
start_location_gps = '51.9171115;4.484812'
WHERE userId = 1
AND appointmentId = 47

在数据库中手动输入并且所有字段都正确填充时,两个查询都有效。当我让php文件运行查询时,查询如上所示,但“start_location_gps”和“current_location_gps”为空。

查询中的值是字符串,数据库字段是varchar(30)。然而,数据库中的字段是空的。

从post方法接收位置值。

有谁知道我忘了或做错了什么?

编辑:

php示例

public function SendQuery($query)
{
    $results = $this->mysqli->query($query);
    return $results;
}

public function UpdateUserLocation($currentLocationGps)
{
    $query = "UPDATE ".DB_PREFIX."userdata
                SET current_location_gps = '{$currentLocationGps}'
                WHERE id = ".$this->userId;
    //echo $query;
    $this->db->SendQuery($query);
}

1 个答案:

答案 0 :(得分:0)

您当前的代码不会检查mysqli_query的返回值;查询可能会“无声地”失败。也可能是因为WHERE子句中的值错误,查询不会影响数据库中的任何记录 尝试使用

if ( !$this->db->SendQuery($query) ) {
  // query failed: syntax error, connection lost, access denied,duplicate entries, ...
  trigger_error($this->mysqli->error);
}
else {
  if ( 0 < $this->mysqli->affected_rows ) {
    // WHERE clause doesn't match any record, no values changed, ...
    trigger_error('no rows affected');
  }
}

您的查询也可能容易进行SQL注入,请查看http://php.net/manual/en/security.database.sql-injection.php