我知道当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'])时,得到的是一个整数。
我认为数据类型总是会被转换为字符串。
'i'
表示 mysqli 绑定函数的这个数据库列是整数类型,当参数被该值替换时,$id
应该被视为整数处理。它并没有描述$id
的内容是什么。 - RiggsFollyif
语句不会被执行,您的函数将返回NULL
:) - niceman