清理整数时使用intval和real_escape_string

pau*_*lus 5 php mysql mysqli

亲爱的大家.

我在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)

谢谢.

Der*_*rek 9

intvalreal_escape_string以前更快的方式real_escape_string连接到数据库并基于charset/collat​​ion转义.

你也可以像以下那样强制转换:

$val = (int)$val;
Run Code Online (Sandbox Code Playgroud)

因此无需双重消毒