PHP mysqli准备了删除前导零的语句

时间:2013-03-25 21:24:44

标签: php mysqli prepared-statement

我试图在我的数据库中输入一个电话号码,该列设置为varchar(15),而在phpmyadmin中,它将接受一个前导为0的电话号码(例如07712123123)。

在我的PHP脚本中,我有变量$ contactNo,这是一个包含07712123123的字符串

但是当我使用我准备好的语句将数据输入数据库时​​,前导零被删除。我怎么能阻止这个?

// Insert data into customer_accounts
if($stmt = $mysqli -> prepare("INSERT INTO customer_accounts (username, password, firstname, lastname, email, number) VALUES (?,?,?,?,?,?)")) {
    $stmt -> bind_param("ssssss", $username, $password, $firstname, $lastname, $emailAddress, $contactNo);
    $stmt -> execute();
    $stmt -> close();
}

我已经在语句之前和之后回显了变量,并且0就在那里,所以它必须在将其放入数据库时​​被删除。我是新手准备的陈述,我无法弄清楚如何解决它。

谢谢!

1 个答案:

答案 0 :(得分:1)

您在问题中提供的准备好的声明没有流量,因此我猜测数据类型存在静默转换。

仔细检查列number确实属于VARCHAR类型。  我很确定你有INT(或类似)类型。