2010-11-10 31 views
1

這可能是一個奇怪的問題,我確實需要第二隻眼睛。我在我的PHP腳本中運行以下查詢,但在查詢中發現錯誤行時出現問題。當我回顯$查詢,我看到輸出有效,但查詢給出並在輸出結束時出錯:需要第二隻眼來調試查詢

您的SQL語法錯誤; ('''''GPRMC','040837.002','A','60.15465','N','24.7436')附近使用正確的語法檢查對應於您的MySQL服務器版本的手冊。 , 'E', '0.5',1970,01,01 '' 在1號線

我運行下面的查詢:

query = "INSERT INTO rmc_raw_data 
      (device_id, nmea, rmc_time, signal, latitude, north, longitude, east, speed, track_angle, rmc_date, magnetic_variation, west,check_sum) 
     VALUES"; 
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { 
    $numlines++; 

    $myDay=substr($data[9], 0,2); 
    $myMonth=substr($data[9], 2,2); 
    $myYear=substr($data[9], 4,2);    

    $rmc_date = convertToNiceDate($myDay, $myMonth, 2000+$myYear); 

    $longitude = convertToDegrees($data[6]); 
    $latitude = convertToDegrees($data[4]); 

    $query .= "('$data[0]','$data[1]','$data[2]','$data[3]','$latitude','$data[5]','$longitude','$data[7]','$data[8]',$rmc_date','$data[10]','$data[11]','$data[12]'),"; 
} 

$query = substr($query, 0,-1); 

echo $query; 
mysql_query($query) or die(mysql_error()); 

查詢進口和從文本文件操縱數據,具有以下逗號分隔的數據行樣本:

//input data 
1,$GPRMC,080323.460,A,6013.45368,N,02445.28396,E,21.6,134.0,070610,6.9,W,A*2A 
1,$GPRMC,080327.000,A,6013.44424,N,02445.31214,E,9.0,135.2,070610,6.9,W,A*1E 
1,$GPRMC,132305.000,V,,,,,,,070610,,,N*4B 
1,$GPRMC,132320.000,V,,,,,,,070610,,,N*4C 
1,$GPRMC,132335.000,V,,,,,,,070610,,,N*48 
1,$GPRMC,132350.000,V,,,,,,,070610,,,N*4B 
1,$GPRMC,134841.000,V,,,,,,,070610,,,N*46 
1,$GPRMC,134856.000,A,6009.32417,N,02444.63687,E,1.7,124.8,070610,6.9,W,A*1A 
1,$GPRMC,134911.000,A,6009.32239,N,02444.63356,E,,,070610,,,A*64 
1,$GPRMC,134927.000,V,,,,,,,070610,,,N*47 
1,$GPRMC,155411.405,V,,,,,,,070610,,,N*49 
------- 

雖然查詢輸出結果爲屏幕爲我測試來看,它也是在以下點的輸出即都給了錯誤的地方終止:

//output data to be inserted 
     ('1','$GPRMC','142346.000','A','60.15675','N','24.74189','E','14.1',1970,01,01','290610','6.9','W'), ('1','$GPRMC','142349.000','A','60.15656','N','24.74203','E','13.5',1970,01,01','290610','6.9','W'), ('1','$GPRMC','142402.000','A','60.15565','N','24.74287','E','13.2',1970,01,01','290610','6.9','W'), ('1','$GPRMC','142411.000','A','60.1551','N','24.74347','E','7.3',1970,01,01','290610','6.9','W'), ('1','$GPRMC','142414.000','A','60.15507','N','24.74346','E','',1970,01,01','290610','',''), ('1','$GPRMC','142417.000','A','60.15514','N','24.74358','E','6.4',1970,01,01','290610','6.9','W'), ('1','$GPRMC','142423.000','A','60.15524','N','24.74371','E','',1970,01,01','290610','',''), ('1','$GPRMC','142435.000','A','60.15512','N','24.74365','E','',1970,01,01','290610','',''), 
('1','$GPRMC','142447.000','V','0','','0','','',1970,01,01','290610','',''), 
('1','$GPRMC','142459.000','V','0','','0','','',1970,01,01','290610','',''), 
('1','$GPRMC','062917.637','V','0','','0','','',1970,01,01','070610','',''), 
('1','$GPRMC','062932.000','V','0','','0','','',1970,01,01','070610','',''), 
('1','$GPRMC','063206.392','V','0','','0','','',1970,01,01','070610','',''), 
('1','$GPRMC','080238.101','V','0','','0','','',1970,01,01','070610','',''), 
('1','$GPRMC','080253.000','V','0','','0','','',1970,01,01','070610','',''), 
('1','$GPRMC','080305.000','V','0','','0','','',1970,01,01','070610','',''), 
('1','$GPRMC','080308.000','V','0','','0','','',1970,01,01','070610','','') 


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 '','070610','6.9','W'),('1','$GPRMC','080327.000','A','60.22407','N','24.7552','E' at line 1 

我一直在努力追查錯誤,但沒有解決方案。我已經取得了與文件類似性質相同的結果而沒有任何疑慮。但是這讓我瘋狂。

回答

2

$rmc_date未正確引用。

+1

有趣的SO語法高亮如何給它了...... :) – falstro 2010-11-10 17:18:46

+0

GDI 1秒的速度比我 – BentOnCoding 2010-11-10 17:19:17

+1

我越是看少我看到了。看起來收益遞減。謝謝。 – ibiangalex 2010-11-10 17:58:58

2

缺失報價接近「$ rmc_date」

+0

認真!我需要第二個眼睛的人。謝謝。我糾正並希望這是唯一的問題。 – ibiangalex 2010-11-10 17:33:18