我知道当MySQL返回数据时,它会以字符串形式返回,而不会返回MySQL数据类型。
那么为什么当我运行这个准备好的语句时,我得到一个整数?
$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'])时,我得到一个整数。
我认为数据类型将始终转换为字符串。
答案 0 :(得分:2)
它并不总是以字符串形式返回。也许你使用的PHP版本高于5.3(PHP 5.3的版本是用mysqlnd编译的(而不是旧的libmysql)),使用mysqlnd作为本机驱动程序,本机驱动程序适当地返回整数类型。 请检查您当前使用的版本。 有关详细信息,您可以浏览此链接。 http://blog.ulf-wendel.de/2008/pdo_mysqlnd-the-new-features-of-pdo_mysql/