我刚刚从 7.3 升级到 php 8.1,并解决了一些损坏的问题。弹出的一条消息是“PHP 已弃用:addslashes()”。我们经常使用该命令,这并不是为了防止 mysql 注入。我们必须处理其中可能包含特殊字符的名称 ' ~ 等。
但是当我查看https://www.php.net/manual/en/function.addslashes.php时 ,它说 PHP8 支持它。
抱歉,我想我还是个新手……但我错过了什么?如果它已经出来了,那么现在支持的处理方式是什么?
更新以添加代码示例和问题澄清
现在我已经睡过了,我发现这不是addslashes() 上的弃用错误。这是一个错误,表明我们传递给函数的值为 NULL。我在文档中看到从 8.1 开始不再允许这样做。
因此,根据这些信息,处理以下示例的新的和改进的方法是什么。
$(function () {
$('.adminheader').html('<?php addslashes(GetMainEventNames()); ?>');
$('.maineventbuttons').button().each(function () {
var MainEventCode = $(this).attr('data-code');
$(this).click(function () {
ChangeLocalActiveStatus(MainEventCode);
});
});
Run Code Online (Sandbox Code Playgroud)
错误信息
PHP Deprecated: addslashes(): Passing null to parameter #1 ($string) of type string is deprecated in....
Run Code Online (Sandbox Code Playgroud)
小智 5
所以你的 PHP 函数至少有时GetMainEventNames()会返回。null这是预期或期望的行为吗?如果是的话,那么有两种可能的解决方案。一种是让您的函数检查返回值是否为 null 并返回一个空字符串。另一种是在函数内使用空合并运算符addslashes(),如下所示:
<?php addslashes(GetMainEventNames() ?? ''); ?>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4394 次 |
| 最近记录: |