ホームページ > データベース > mysql チュートリアル > 文字列変数を使用して MySQL フィールドに動的にアクセスできますか?

文字列変数を使用して MySQL フィールドに動的にアクセスできますか?

Patricia Arquette
リリース: 2024-11-19 08:23:02
オリジナル
911 人が閲覧しました

Can MySQL Fields Be Accessed Dynamically Using String Variables?

変数による MySQL フィールドへの動的アクセス

問題:

ファイルに格納されている名前によって MySQL フィールドにプログラム的にアクセスできますか?文字列変数、特にフィールドを動的に更新する場合値?

使用例:

SET fieldname = NEW.`name`;
UPDATE table SET fieldname = 1 ;
ログイン後にコピー

答え:

変数によって MySQL フィールドに動的にアクセスする機能コンテキストによって異なります。

外部変数:

フィールド名が外部アプリケーション (PHP など) に変数として保存されている場合、有効な MySQL ステートメントを構築できます。

内部変数:

ただし、フィールド名が MySQL テーブル内の値として保存されている場合は、標準の SQL 構文を使用することは現実的ではありません。これは、MySQL に評価 (eval) 関数がないことが原因です。

プリペアド ステートメントのテクニック:

回避策として、プリペアド ステートメントを利用できますが、このアプローチは次のとおりです。ハックなソリューションと考えられています。実装方法は次のとおりです。

SELECT columnname from queries into @colname;
SET @table = 'mytable';
SET @s = CONCAT('SELECT ',@colname,' FROM ', @table);

PREPARE stmt FROM @s;
EXECUTE stmt;
ログイン後にコピー

この手法には、テーブルの列名をユーザー変数 (@colname) に格納し、動的 ​​SQL ステートメントを連結し、ステートメントを準備して実行することが含まれます。

以上が文字列変数を使用して MySQL フィールドに動的にアクセスできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート