2

この呼び出しはエラーで失敗します:

mysqli_report(MYSQLI_REPORT_ALL);
$stmt = $mysqli->prepare("INSERT INTO check VALUES (?,?,?,?,?,?)");

私が得るエラー:

キャッチされない例外 'mysqli_sql_exception' とメッセージ 'SQL 構文にエラーがあります。'check VALUES (?,?,?,?,?,?)' at line 1' 付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

  1. 適切な数のフィールドを持つ「チェック」という名前のテーブルがあります
  2. テーブル名を変更するcheckSomethingと動作します...

何か案が ?

4

2 に答える 2

2

check予約キーワードです。テーブル名として使用するには、次のようにバッククォートでエスケープする必要があります: `check`:

$stmt = $mysqli->prepare("INSERT INTO `check` VALUES (?,?,?,?,?,?)");
于 2013-11-06T23:33:33.970 に答える
2

Check はMySQLの予約語です。次のようにバッククォートで囲む必要があります。

$mysqli->prepare("INSERT INTO `check` VALUES (?,?,?,?,?,?)");

または、特別なケースを常に持つ必要のない名前に変更することをお勧めします。

$mysqli->prepare("INSERT INTO checks VALUES (?,?,?,?,?,?)");
于 2013-11-06T23:36:03.303 に答える