-2

メッセージが表示されます:

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
'12:00,25.32,1015.19,42.32,200.0,1.29,2.25,7.11,11.58,5.97,3.5,0.0,0.0,0.0,0.0,37'
at line 2

関連コード:

$con = mysql_connect("127.0.0.1", "username", "password") or die(mysql_error());
mysql_select_db("database",$con) or die (mysql_error());

//readFmi() returns an array of strings with values separated by commas
$array =  readFmi($xml);

$cols = 'date, Temperature, Pressure, Humidity, WindDirection, WindSpeedMS,
MaximumWind, WindGust, DewPoint, TotalCloudCover, LowCloudCover, MediumCloudCover,
HighCloudCover, Precipitation1h, PrecipitationAmount, RadiationLW, RadiationGlobal,
RadiationNetTopAtmLW';

foreach($array as $a){
  $a2 = mysql_real_escape_string($a);
  echo $a2."<br>";
  mysql_query("INSERT INTO forecastsFMI ($cols)
  VALUES ($a2)") or die (mysql_error());
}

mysql_close($con);

$a を印刷すると、次のようになります

2013-06-24 12:00,25.32,1015.19,42.32,200.0,1.29,2.25,7.11,11.58,5.97,3.5,0.0,0.0,0.0,0.0,375.85,550.09,-260.6

$cols は、データベースのテーブルにあるものとまったく同じです。今のところ、間違いを犯した場所を見つけようとして、すべてを varchar に設定しました。私はデータベース内のフィールドと値を数えて、それが間違っているかどうかを確認し、文字列自体の形式を変更しようとし、コードのさまざまな部分を変更して微調整しようとしましたが、結果に違いはありませんでした。何が原因でしょうか?

ありがとう//トバイアス

4

1 に答える 1

2

文字列内の文字列/日付列の値を引用符で囲む必要があります。したがって、特別な場合は、次のようなものが必要です。

"2013-06-24 12:00",25.32,1015.19,42.32,200.0,1.29,2.25,7.11,11.58,5.97,3.5,0.0,0.0,0.0,0.0,375.85,550.09,-260.6
于 2013-06-24T12:44:06.993 に答える