在更新基于表的条件php时设置错误限制

时间:2010-11-12 19:48:24

标签: php mysql

我有一个问题。我之前没有这样做,也不确定是否应该这样做。

我有一个正常运行的mySQL查询。每当我想进行更新时,我都会在phpMyAdmin查询编辑器中使用它。但是,我希望通过将查询放在php脚本中来使用户的生活更轻松,这样用户只需单击一个链接即可完成任务。

我做了以下事情:

$sql = " SET @error_limit = 10E-6;
UPDATE (
SELECT r.rmc_id, 'rmc_raw_data' src, r.rmc_time, r.rmc_date, r.latitude, r.longitude,
IF(s.server_id IS NULL, 'Mobile', 'Both') c FROM rmc_raw_data r
LEFT JOIN server_log_data s 
  ON r.rmc_time = s.server_rmc_time AND r.rmc_date = s.server_rmc_date AND   ABS(r.latitude - s.server_latitude)/r.latitude < @error_limit AND ABS(r.longitude -   s.server_longitude)/r.longitude < @error_limit

UNION     SELECT s.server_id,'server_log_data'src,s.server_rmc_time,s.server_rmc_date,s.server_latitude,s.server_longitude,IF(r.rmc_id IS NULL,'Server','Both')c FROM rmc_raw_data r     RIGHT JOIN server_log_data s       ON r.rmc_time = s.server_rmc_time AND r.rmc_date = s.server_rmc_date AND ABS(r.latitude-s.server_latitude)/r.latitude&lt; @error_limit AND ABS(r.longitude - s.server_longitude)/r.longitude< @error_limit    )t      LEFT JOIN rmc_raw_data r1     ON r1.rmc_id = t.rmc_id AND t.src ='rmc_raw_data'      LEFT JOIN server_log_data s1     ON s1.server_id = t.rmc_id AND t.src ='server_log_data'     组     r1.data_source = c,s1.data_source = c;“;     $ result = mysql_query($ sql,$ link);     如果($结果){     echo“查询执行成功”;     ...     ...

所以我把整个东西放到我的php脚本中但得到了一个mysql错误:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UPDATE ( SELECT r.rmc_id, 'rmc_raw_data' src, r.rmc_time, r.rmc_date, r.latit' at line 1

有人可以在这里建议你做错了吗?我认为我在查询的第一行设置的错误限制是负责任的,但我认为可以将他的工作查询放在mysql_query()中并且它可以工作。

1 个答案:

答案 0 :(得分:0)

'rmc_raw_data' src,此引号会破坏查询???