我有一个问题。我之前没有这样做,也不确定是否应该这样做。
我有一个正常运行的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()中并且它可以工作。
答案 0 :(得分:0)
'rmc_raw_data' src,
此引号会破坏查询???