在PHP中将querystring转换为int

在PHP中将querystring转换为int,php,string,Php,String,在我的第一个PHP站点上工作(我主要是一名ASP程序员),我需要将querystring变量转换成一个数字,然后用它来查询数据库。在PHP中转换为可用的int(我已经尝试了intval(),但结果一直得到0)并验证它(也称为无单引号,诸如此类)的最佳方法是什么?您可能正在尝试读取PHP脚本的输入参数-我建议使用 $_POST $_GET 数组,因为它们保存所有已解析的信息。PHP允许使用比ASP更灵活的类型,并将自动在不同类型之间转换 确保SQL中有数字的最佳方法是使用sprintf(),例如

在我的第一个PHP站点上工作(我主要是一名ASP程序员),我需要将querystring变量转换成一个数字,然后用它来查询数据库。在PHP中转换为可用的int(我已经尝试了intval(),但结果一直得到
0
)并验证它(也称为无单引号,诸如此类)的最佳方法是什么?

您可能正在尝试读取PHP脚本的输入参数-我建议使用

$_POST $_GET

数组,因为它们保存所有已解析的信息。

PHP允许使用比ASP更灵活的类型,并将自动在不同类型之间转换

确保SQL中有数字的最佳方法是使用
sprintf()
,例如:

$sql = "SELECT name FROM users WHERE id = ".sprintf("%d", $_POST['userid']) ;
在将GET或POST传递的字符串插入SQL时,应使用
mysql\u real\u escape\u string()
(假设您的SQL将转到mysql)来转义任何需要转义的内容,因此:

$sql = "SELECT id FROM users where name = ".sprintf("'%s'", mysql_real_escape_string($_GET['username'])) ;

如果查询字符串中出现“hello”之类的字符串而不是数字,sprintf()会做什么?如果您已经在使用sprintf,为什么不一直使用它并执行
$sql=sprintf(“从id=%d的用户中选择名称,$\u POST['userid'])?更干净,无需连接。我已经在使用这些,我只需要确认输入是一个数字,然后再将其添加到我的SQL查询中。