gpt4 book ai didi

mysql - PHP 强制 var 具有特定类型

转载 作者:行者123 更新时间:2023-11-29 02:06:00 25 4
gpt4 key购买 nike

这可能是一个愚蠢的问题,但我也可以这样做:)

有没有外力

$tel1 = '05';// string
settype($tel1,'string');
$tel1 = 06;//either throw error, or convert it to string automatically.
var_dump($tel1);//(string [2]) 05

上面的代码是我头脑中的代码,所以可能不准确,但我需要将变量保留为字符串而不是数字,因为我做了一些愚蠢的事情,现在我的电话号码丢失了前导 0:- (

n 我不会重写它,因为它会与其他数字类型混淆,b4 你问它是 db 的一个自动服务来检查它是否是一个数字值,

更新这就是问题

function escape($str){
if(is_numeric($str)){
return $str;
}else{
return "'".mysql_real_escape_string($str).'\'';
}
}
$tel1 = "06";
$sql = 'SELECT * FROM blabla WHERE id = '.escape($tel1).'';
//above is same as below
$sql = 'SELECT * FROM blabla WHERE id = 06 ';

我无法更改 scape 函数内部的任何内容,因为整个网站的其他输入都在使用此函数,我不想打乱他们的验证。

最佳答案

您对 is_numeric 的使用测试数字内容,而不是整数类型。但是随后您使用了一个名为 $str 的变量,这意味着您希望它是一个字符串。

也许使用:

function escape($val) {
if (is_numeric($val) && !is_string($val)) {
return $val;
}
else{
return "'" . mysql_real_escape_string($val) . '\'';
}
}

现在字符串将被转义和引用,但如果它们只包含数字内容,不会

关于mysql - PHP 强制 var 具有特定类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5885042/

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