Do预处理语句在php中从数字前面去掉一个0


Do prepared statements cut a 0 off the front of a number in php?

我正在向数据库插入一些字段。其中一个字段是电话号码字段。例如,如果您以'01234'开始一个数字,它将切断字符串开头的'0'。

我正在使用mysqli和准备好的语句将字符串插入到DB中,并且我有一个不同的插入查询,不使用准备好的语句,在开始时它不会切断'0',这导致我假设准备好的语句正在修剪'0'。

我也做了字段,它插入到一个varchar,看看是否会使它工作,但没有运气。

你知道为什么当我使用准备好的语句时,它在开始时切断'0'吗?我怎么才能避开这个问题呢?

如果您在任何时候指定电话号码为实际数字(即int, decimal, float等),它将删除任何前导零。

因此,电话号码应该作为字符串接受、传输和存储。因为你从不对一个电话号码进行数学运算,所以它应该不会出现任何问题。

我猜在你准备好的语句或其他步骤中,你将其指定为一个数字。

确保在mysqli_stmt::bind_param中使用正确的$types