PHP PDOコマンドを実行する関数で変数を送信すると、変数が実際に存在しますが、PDOではエラーが発生します。ここでPHP PDOエラーがベースに追加中
は関数である。
public static function addMenu($name){
$db = ConnectDB();
var_dump($name); echo '<br />';
$sql = "INSERT INTO " . self::getTableName() . " name VALUES :nameMenu";
$stmt = $db->prepare ($sql);
$stmt->bindParam(':nameMenu', $name, PDO::PARAM_STR);
$stmt->execute();
}
そして、ここで私が手にそのエラー:
文字列(4) "rher"
致命的なエラー:キャッチされない例外 'PDOException' [SQLSTATE [42000]:構文エラーまたはアクセス違反:1064 SQL構文にエラーがあります。 が正しい構文のために があなたのMySQLサーバーバージョンに対応していることを確認してください。 の名前は、 C:¥xampp¥htdocs¥sea¥public_html¥admin¥backend¥DB¥tablesの 'VALUES' rher '' at line 1 ' \ TypePlacesTable.php:30 スタックトレース: C:\ XAMPP \ htdocsに海\ \のpublic_html \管理\ TypePlacesTable.php \バックエンド\のDBの\テーブル(30): PDOStatement- >実行() C:\ XAMPP \ htdocs \ sea \ public_html \ admin \ backend \ index.php(18): TypePlacesTable :: addMenu( 'rher'){メイン} C:\ xampp \ htdocs \ sea \ public_html \ admin \ backend \ DBにスローされました。 \ tables \ TypePlacesTable.php オンライン
ないその必要に応じて確認する必要がありますが、入れてみてください)'列名の周り名前付きparamsを囲む '()'が必要になるかもしれません。例えば'$ sql =" INSERT INTO " self :: getTableName()。 – Matt
の前に、()を使用せずに試してみませんでした.SQLとデバッグエラーがあった場合は、 '' echo $ sql'を実行してデータベースに直接貼り付けてみてください。( '\' name \ ')そこに問題があれば。今後の参考のために :) – Matt