1

由于某种原因,当我preg_replace()用于存储电话号码的输入字段时,我无法将其存储到 MySQL 中。preg_replace 可以用于整数还是只能用于字符串?

我试图使在文本字段中输入字母成为不可能。有人可以提供一些见解吗?

$tel = $_POST['tel'];

//当我使用preg_replace时,它不会将值存储在MySQL中

$tel = preg_replace($reg_num,'', $tel);

...

    $st->bindParam(6, $tel, PDO::PARAM_INT);
4

3 回答 3

2

preg_replace将整数转换为字符串,并正确执行替换。但是,它将返回一个字符串,其中bindParam需要一个整数。

将电话号码存储为整数通常是不明智的,因为您会丢失任何前导“0”或任何“+”号(如果用于国际号码)。

于 2012-07-03T10:08:02.043 回答
1

认为问题可能是 PDO 需要一个整数作为您的电话参数,而$tel变量包含一个字符串。请尝试:

$st->bindParam(6, int($tel), PDO::PARAM_INT);

但是,您可能应该将电话号码存储为字符串(但这可能需要更改您的架构):

$st->bindParam(6, $tel, PDO::PARAM_STR);
于 2012-07-03T10:08:50.360 回答
0

如果您没有常规 exp.. 则只需使用 str_replace();

$tel = str_replace ($reg_num,'', $tel);
于 2012-07-03T10:13:05.637 回答