我知道MySQL返回数据时,返回的是字符串,不是MySQL数据类型的metter。
那么为什么当我运行这个准备好的语句时我得到一个整数?
$id = '1';
sql = "SELECT * FROM
USER
WHERE user_id = ? ";
$stmt = $this->conn->prepare($sql);
$stmt->bind_param('i', $id);
$stmt->execute();
$user = $stmt->get_result();
return ($user->num_rows == 1) ? $user : NULL ;
if ($user) {
while($row = $result->fetch_assoc()) {
$data = array();
$data["user_id"] = $row["user_id"];
return $data;
当我运行 php gettype($data['user_id']) 时,我得到一个整数。
我以为数据类型总是会被转换成字符串。
最佳答案
它并不总是以字符串形式返回。也许你正在使用高于 5.3 的 PHP 版本(PHP 5.3 的版本是用 mysqlnd(而不是旧的 libmysql)编译的),使用 mysqlnd 作为 native 驱动程序并且 native 驱动程序适本地返回整数类型。 请检查您当前使用的是哪个版本。 有关更多详细信息,您可以访问此链接。 http://blog.ulf-wendel.de/2008/pdo_mysqlnd-the-new-features-of-pdo_mysql/
关于php - 在 PHP 中作为整数返回的 MySQL 整数字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42325579/