2011-01-28 12 views
-1


私のPHPスクリプトでは、mysqlテーブル接頭辞を使用しています。しかし、トリガーやルーチンも時には非常に便利です。 OK。私はテーブルを持っているとしましょう: 'pre_customers'。そして、ちょうど例えば、大したことないmysqlのテーブルプレフィックス付きトリガー/ルーチンの使用

CREATE FUNCTION `get_all_clients`() RETURNS int(11) 
    BEGIN 
    DECLARE sum INT ; 
    SELECT COUNT(id) INTO sum FROM pre_customers ; 
    RETURN sum; 
END 


などの手続きかないました。また定数もあります

<?php 
define('DB_PREFIX', 'pre_') ; 

テーブルプレフィックスの変更に使用されています。私は、スクリプト内のSQL要求をする必要がある場合、私はこの

$query = "SELECT * FROM " . DB_PREFIX . "customers" ; 
$result = mysql_query($query) ; 
... 

大丈夫のようにそれを作るが、私はそれがつもり破滅だテーブル名のすべてのストアドルーチンと一緒にPHPスクリプトでは、このプレフィックスを変更したい場合引き金を引くと、彼らはまだ 'pre_customers'テーブルに適用されます。したがって、問題は、通常、プログラマがどのようにこの問題を解決するかという共通の慣行です。

+0

'DB_PREFIX = 'pre _';' ---これは何ですか? – zerkms

+0

さて、私はOOP dnd手続き型PHPを奇妙な方法で混ぜ合わせたようです:)それはもちろん、定義されているはずです( 'DB_PREFIX'、 'pre_')。 – kos

答えて

0

したがって、通常はどのようにしてプログラマがこの問題を解決するのかという共通の習慣があります。

  • あなたは接頭辞を変更する必要がある場合pre_%db_prefix%
  • に置き換えて、そのダンプを使用してテンプレートのいくつかの種類を作成したダンプ
  • の作成 - テンプレートに接頭辞を交換し、
  • をMySQLへそれをインポートします
+0

あまりにも明白です。私はよりシンプルなことを意味しました。より多くのプログラマーではなく、dbダンプを伴わずに「このファイルを開き、そこでいくつかの設定を変更する」という簡単な指示を与えることができます。 – kos

+0

@kos:動的クエリは決して使用すべきではありませんでした。私はあなたが望む方法でそれを実装する方法を見つけることを試みないことをお勧めします。 – zerkms

+0

私はそれらを使用する唯一の人ではありません。ほとんどのパブリック・ホストは、作成するデータベースの量が限られているため、他の方法はありません。しかし、あなたが正しいと思います。私はそれを解決するチャンスはあまりないと確信していました。すべてのパブリック・ホストがルーチンとトリガーを作成する権限を与えているわけではありません。 – kos

関連する問題