亲爱的大家.
我在mysql数据库的一些表中使用整数PK.在从PHP脚本输入之前,我正在进行一些清理,包括intval($ id)和$ mysqli-> real_escape_string().
查询非常简单
insert into `tblproducts`(`supplier_id`,`description`) values('$supplier_id','$description')
Run Code Online (Sandbox Code Playgroud)
在这个例子中,$ description通过real_escape_string(),而$ supplier_id只是intval()'ed.
我只是好奇,如果有任何情况,当我需要将intval和real_escape_string同时应用于整数我插入数据库?所以基本上我真的需要使用吗?
$supplier_id = intval($mysqli->real_escape_string($supplier_id));
Run Code Online (Sandbox Code Playgroud)
谢谢.
intval比real_escape_string以前更快的方式real_escape_string连接到数据库并基于charset/collation转义.
你也可以像以下那样强制转换:
$val = (int)$val;
Run Code Online (Sandbox Code Playgroud)
因此无需双重消毒