可以使用字符串变量动态访问MySQL字段吗?

Patricia Arquette
发布: 2024-11-19 08:23:02
原创
854 人浏览过

Can MySQL Fields Be Accessed Dynamically Using String Variables?

通过变量动态访问 MySQL 字段

问题:

可以通过存储在数据库中的名称以编程方式访问 MySQL 字段吗?字符串变量,特别是用于动态更新字段值?

示例用例:

SET fieldname = NEW.`name`;
UPDATE table SET fieldname = 1 ;
登录后复制

答案:

The通过变量动态访问 MySQL 字段的能力取决于上下文。

外部变量:

如果字段名称作为变量存储在外部应用程序中(例如, PHP),构建有效的 MySQL 语句是可能的。

内部变量:

但是,如果字段名称作为值存储在 MySQL 表中,则访问它使用标准 SQL 语法是不可行的。这是由于 MySQL 缺少评估 (eval) 函数。

准备语句技术:

作为一种解决方法,可以使用准备语句,尽管这种方法是被认为是一个hacky解决方案。其实现方式如下:

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板