1
$sql = "CREATE TABLE 'my_custom_table'(
  id mediumint(9) NOT NULL AUTO_INCREMENT,
  time datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
  name tinytext NOT NULL,
  text text NOT NULL,
  url VARCHAR(55) DEFAULT '' NOT NULL,
  UNIQUE KEY id (id)
);";

require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
dbDelta( $sql );

これは私のコードです。実行しようとするとエラーが発生します。my_custom_tableただし、文字列を変数に置き換えると、$table_name = 'my_custom_table';これは機能します。どうして??

4

1 に答える 1

2

適切な表記は次のとおりです。

CREATE TABLE `my_custom_table`

一重引用符は文字列を定義します。バッククォートはテーブル名をエスケープします。

別のバージョンでこれを行った可能性があります。

CREATE TABLE my_custom_table

テーブル名に非標準文字 (A ~ Z、0 ~ 9、または _ 以外) が含まれているか、予約語でない限り、バッククォートは必要ありません。ただし、一貫性を保ちたい場合は、すべての状況でそれらを使用しても安全です。

于 2013-09-16T16:13:15.650 に答える