Php 将文本从表单转换为int

Php 将文本从表单转换为int,php,forms,Php,Forms,我正试图从表单中获取一些数据,但由于某些原因我不能。 下面是我的几行代码 cellphone: <input type = "text" name = "cellphone"><br /> username : <input type = "text" name = "username"><br /> 但由于某种原因,我无法将手机号码输入我的数据库。 请先帮我:D: 您必须清理所有传入变量! 然后,要转换为整数,可以使用: $cellphone

我正试图从表单中获取一些数据,但由于某些原因我不能。 下面是我的几行代码

cellphone: <input type = "text" name = "cellphone"><br />
username : <input type = "text" name = "username"><br />
但由于某种原因,我无法将手机号码输入我的数据库。 请先帮我:D

: 您必须清理所有传入变量!

然后,要转换为整数,可以使用:

$cellphone = (int) $_GET["cellphone"];
更好的解决办法是使用

在编写任何进一步的代码之前,您应该阅读并过滤_var

现在,在人们开始建议mysql_real_escape_string使用它之前,先看看PDO或MySQLi

将diemsg替换为DIEU错误,以便调试故障原因 不要将用户提供的数据直接插入数据库,请使用mysql\u real\u escape\u string或类似工具来清理数据并防止SQL注入 如果问题是您的phone字段在DB中声明为int,那么在执行插入之前,请确保它是整数。您可以尝试强制转换为int,但我认为您应该对数据执行更精确的清理,检查每个字段的预期允许格式和类型,并在错误插入时向用户返回每个字段的错误
顺便说一下,如果您将电话号码存储为整数,您无法很好地处理国际前缀+39或0039(例如意大利),因为+不是数字,00将在转换为整数时丢失……

这可能是因为您的mysql列只接受INT,而输入是字母数字。在这种情况下,您可以使用$mobile=filter\u var$\u GET['mobile'],filter\u SANITIZE\u NUMBER\u INT;如果您需要一个仅限整数的输入

使您的表单张贴方法,而不是获取。GET用于请求数据,POST用于存储。 考虑使用VARCHAR类型字段来拨打电话号码。 虽然在插入之前规范化电话号码是一个非常好的主意,方法是从电话号码中去掉所有非数字字符。
我认为手机号码不应该存储为整数,从语义上讲它不是整数而是数字ID。mysql\u real\u escape\u string不会清除任何内容!mysql\u real\u escape\u string不做这项工作。mysql\u real\u escape\u字符串加引号。它不应该只是输入验证,而是查询构建rule@Col.弹片,真的;如果是字符串,则需要引号。是的,转义字符串应该是查询构建过程的一部分。然而,这是一个初学者问题的答案,因此我试图说服OP a多读多学,b使用一个经过验证的库和准备好的语句,让它为他们处理许多复杂的工作。
$cellphone = (int) $_GET["cellphone"];
$cellphone = filter_var( $_GET["cellphone"], FILTER_VALIDATE_INT);