0

統計プログラムを作成している間、私は 1 時間に飛行場を訪れる航空機の数を追跡しています。

私のスクリプトは過去 1 時間のフライト数を計算し、これをデータベースに保存します。私のphpmyadminでステートメントをコピーすると、mysql構文エラーが発生し続けます

$date = 2013091713;
//$date = date('YmdH', mktime(date('H')));

$sql = '';
foreach ($aerodrome as $icao => $value) {
    $sql .= "INSERT INTO flightsperhour(date, aerodrome, inbound, outbound) 
             VALUES('". $date ."', '" . $icao . "' , " . (isset($value['inboud']) ? $value['inboud'] : 0)  . ", " . (isset($value['outbound']) ? $value['outbound'] : 0) . ");";
}
//INSERT INTO flightsperhour(date, aerodrome, inbound,outbound) VALUES('2013091713', 'EBBR' , 0, 1);
//INSERT INTO flightsperhour(date, aerodrome, inbound,outbound) VALUES('2013091713', 'ELLX' , 0, 1);
if(mysql_query($sql))
{

} else{
    die(mysql_error());
}

編集: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 'INSERT INTO flightsperhour(date, aerodrome, inbound, outbound) VALUES('2013' at line 2

EDIT2: 単一の行方不明を修正'

EDIT3:プログラミング学生の要求に応じて、彼のソリューションのprint_r

INSERT INTO flightsperhour(date, aerodrome, inbound, outbound) 
             VALUES('2013091713', 'EBBR' , '', '1'),
             VALUES('2013091713', 'ELLX' , '', '1')
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 'VALUES('2013091713', 'ELLX' , '', '1')' at line 3
4

3 に答える 3

0

'との間$dateにコロンがありません$icao

修正されたコード:

$date = 2013091713;
//$date = date('YmdH', mktime(date('H')));

$sql = '';
 $sql .= "INSERT INTO flightsperhour(date, aerodrome, inbound, outbound) ";
foreach ($aerodrome as $icao => $value) {
    $inbound = isset($value['inboud']) ? $value['inboud'] : 0;
    $outbound = isset($value['outbound']) ? $value['outbound'] : 0;
    $sql .= "
             VALUES('". $date ."', '" . $icao . "' , '" . $inboud  . "', '" . $outbound . "'),";
}

$sql = substr($sql, 0, strlen($sql)-1);
//INSERT INTO flightsperhour(date, aerodrome, inbound,outbound) VALUES('2013091713', 'EBBR' , 0, 1);
//INSERT INTO flightsperhour(date, aerodrome, inbound,outbound) VALUES('2013091713', 'ELLX' , 0, 1);
if(mysql_query($sql))
{

} else{
    die(mysql_error());
}
于 2013-10-01T20:48:24.690 に答える
0

これを$date変更するための一重引用符を閉じていません'". $date ."'". $date ."'

$sql .= "INSERT INTO flightsperhour(date, aerodrome, inbound, outbound) 
             VALUES('". $date ."', '" . $icao . "' , " . (isset($value['inboud']) ? $value['inboud'] : 0)  . ", " . (isset($value['outbound']) ? $value['outbound'] : 0) . ");";
于 2013-10-01T20:48:43.610 に答える