gpt4 book ai didi

php - mysql 默认值 NULL "unchageble"- 这可能吗?

转载 作者:太空宇宙 更新时间:2023-11-03 12:17:54 25 4
gpt4 key购买 nike

我的网站使用的是授权软件,当然引擎是加密的。我无权访问和修改任何 PHP 代码...它有一个我想更改的功能,但我无法修改 php 代码,因为供应商不允许我这样做...唯一的选择是构建一个单独的自定义脚本并单独运行它以更新数据库中的字段(这不适合我的项目)或者更改 mysql 数据库中的值手册(同样不合适)

还有第三种选择,不知道可不可以....

场景如下:每当用户单击特定链接时,脚本都会在数据库中添加一个新行。该行有 10 个字段。最后 4 个字段默认为 NULL,它们应该保持为 NULL。脚本在最后 4 个字段中插入值,这是不寻常的,当然脚本不再正常工作。

所以我的问题是:我有什么办法可以防止在数据库中插入这 4 个字段的值吗?它可以锁定为 NULL 吗?可以忽略那些字段的“SET/UPDATE”函数吗?

最佳答案

选项:

  1. 在插入期间不要使用这些列插入。
  2. 在插入触发器之前写入以将这些新列值重置为空。
  3. Writer before update 触发器根据 where 条件将这些新列值重置为 null。

更新:

如果您无权访问您的 php 代码来修改 insert 语句,您只能通过在数据库中定义触发器来实现。要做到这一点,您至少应该拥有各种权限,例如远程连接创建、执行触发器等。除非您能做到这一点。

如果你有这样的权限,你可以在你的数据表上尝试类似下面的东西:

before insert 触发器如下:

delimiter $$

drop trigger if exists bfimt_omit_colum_data $$

create trigger bfimt_omit_colum_data before insert on my_table
for each row begin
set NEW.col_name_4_to_set_null = NULL,
NEW.col_name_5_to_set_null = NULL,
NEW.col_name_6_to_set_null = NULL;
end;

$$

delimiter ;

类似before update触发器如下:

delimiter $$

drop trigger if exists bfumt_omit_colum_data $$

create trigger bfumt_omit_colum_data before update on my_table
for each row begin
set NEW.col_name_4_to_set_null = NULL,
NEW.col_name_5_to_set_null = NULL,
NEW.col_name_6_to_set_null = NULL;
end;

$$

delimiter ;

关于php - mysql 默认值 NULL "unchageble"- 这可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21306983/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com