mysqli bind_param(si)不会工作

时间:2013-07-01 23:02:03

标签: php mysqli

我正在尝试使用mysqli bind_param向我的数据库插入一个值。

我的代码:

<?php
$stmt = $mysqli->prepare("
INSERT INTO ".$db_table_prefix."u_nm  (uname,umobile) VALUES (?,?)");
$stmt->bind_param("si", $this->name, $this->mobile);
$stmt->execute();
$stmt->close();
?>
  • uname 是用户名,因此它应为字符串bind_param("s")
  • umobile 是用户的手机号码,因此应为bind_param("i")

但如果我将umobile设为("i"),那么整个数字都不会插入?

示例:

假设我插入名称Billy和编号0739871169

然后在DB内部显示为:

Billy
739871169

而不是

Billy
0739871169

但是如果我将bind_param改为("ss")而不是("si"),那么它可以正常工作,

但是,不应该将数字标记为("i")或者我是否出错?

1 个答案:

答案 0 :(得分:0)

它接受数字作为整数(即​​没有前导零)。您可以在手机字段中添加“zerofill”选项,或者只是将其作为字符串接受。