1

MySQL データベースに 5 つの変数を入力しようとしています。コードは次のとおりです。

    foreach ($avail_t as $row) {
    $ava = explode("+",$row);
    $day = $ava[0];
    $from = $ava[1];
    $to = $ava[2];
    //echo $day." ".$from." ".$to;
    $query = "INSERT INTO availability (username, login_value, day, from, to) VALUES ('{$_SESSION['username']}', '{$_SESSION['login_value']}', '{$day}', '{$from}', '{$to}')";
    mysql_query($query);
}

その echo ステートメントのコメントを外すと、すべての変数が正常に出力されますが、クエリを処理してもデータベースには入力されません。奇妙なことに、$from と $to を切り取って $day と入力すると、その日になります。$from と $to を戻すと、何も入力されません。

このコードに問題はありますか? $from と $to のデータ型は、ミリタリー タイム フォーマット 2100、1300 などの整数です。

4

2 に答える 2

7

予約済みのキーワードである列名としてfromandを使用しています。クエリでバッククォートを使用してそれらをエスケープしますto`

$query = "INSERT INTO availability (username, login_value, day, `from`, `to`) VALUES ('".$_SESSION['username']."', '".$_SESSION['login_value']."', '$day', '$from', '$to')";
于 2012-12-06T20:13:18.367 に答える
0

fromまたはは使用できませんto。これらは予約語です。

于 2012-12-06T20:16:52.853 に答える