0

インストーラーを備えた新しい CMS を作成しています。

テーブル名の前にカスタム文字列を付けることを許可しています。

接頭辞付きのテーブル名を使用して SQL を変更する推奨される方法は何ですか?

すべてのクエリに DB_PREFIX を追加する必要がありますか、または後で SQL を変更してデータベース クラスで実行できる方法はありますか?

ありがとう

4

2 に答える 2

2

1 つの手法は、中かっこで囲まれたテーブルを使用してすべての SQL クエリを記述し、これらの中かっこを目的のデータベース プレフィックスに置き換える関数を使用することです。

標準の SQL クエリを記述する代わりに、次のように中括弧などを使用してテーブル名を受け入れます。

//SQL query in your code
$query=prefixQuery("SELECT name FROM {customers} WHERE id=$id");

左 { をプレフィックスに置き換え、右 } を削除する単純な関数を定義します。

define(DB_PREFIX,'myprefix_');

function prefixQuery($query)
{
   return str_replace('}','',str_replace('{',DB_PREFIX,$query));
}
于 2012-09-17T14:55:23.827 に答える
1

はい、すべてのクエリにプレフィックスを追加できます。

次のように、関数 str_replace を使用してすべてのクエリを解析することもできます。

str_replace('mytable', 'prefix_mytable', $Query);

オプション番号1の負荷が少ない方を選びます。

ヒント: 新しい CMS を作成する場合は、DB クラスを提供し、プレフィックスを自動的に追加します。

于 2012-06-26T18:31:07.057 に答える