2017-02-12 5 views
0

は、私はいくつかのPHPスクリプトをプログラムの開発と私は(例えば)このSQLクエリを書いた:無効なSQL文 - アポストロフィ?

INSERT INTO \`table1\` (\`article\`, \`typ\`) 
    VALUES(\`test\`, \`test2\`) 

このクエリが動作します。

私の問題は、この 'table1'のようなtablenameとcolumnsを書く場合です SQLエラーが発生しました: SQLエラー(1064):SQL構文にエラーがあります。 ( 'test'、 'test1') '012' '' '' '' 'の近くで使用する正しい構文については、MariaDBサーバーのバージョンに対応するマニュアルをチェックしてください。

誰かが私がそれを書かなければならない理由を知っていますか?この `table1`のように、どうしてノーマルで動作しないのですか? '

サーバー-標準:MariaDB

サーバー・バージョン:10.1.9-MariaDB - mariadb.orgバイナリディストリビューション

サーバーZeichensatz:UTF-8のUnicode(UTF8)

答えて

0

これはあまりにもありますコメントが長い。コードを書く正しい方法は次のとおりです。

INSERT INTO table1(article, typ) 
    VALUES ('test', 'test2') 

すべての識別子(テーブル名と列名)は有効な名前です。彼らはエスケープする必要はありません。したがって、バッククイックは必要ありません。

バッククォートではなく、引用符付きの文字列を一重引用符で囲む必要があります。バックスティックが名前の一部である場合は、次のようにしてください:

INSERT INTO table1(article, typ) 
    VALUES ('`test`', '`test2`'); 

しかし、これはほとんど起こりそうにないようです。

+0

ごめんなさい.... プレビューで私が見カントので、私はバッククォートを作ったカラム名に「コード 大丈夫、私は必要はありません」。 私はそれを試して、それはうまく動作し、私のばかげた質問のために残念です。 とてもシンプルな... – Mark