当我试着打电话的时候 fetch() 执行pdo语句后,我得到以下警告:警告:字符串偏移非法当我使用 fetchAll() 不过。这两者有什么区别,我该怎么用呢?
fetch()
fetchAll()
$allData = $con->prepare("SELECT * FROM users"); $allData->execute(); $result = $allData->fetch();
31moq8wy1#
此错误不是由于使用 fetch() 或者 fetchAll() 因为这两个函数都没有使用 offset ,一定是您稍后在代码中所做的某些操作导致了此问题。我相信你的问题与你在价值观中的循环方式有关,因为你说当你使用 fetchAll() . 循环引发错误是因为它试图访问不存在的偏移量,因为 fetch() 将只返回一个结果,而 fetchAll() 将从查询中返回多个。至于你的问题“两者有什么区别( fetch() & fetchAll() ),那我怎么用这两个呢?”,这是你的答案。 fetchAll() 用于根据查询返回所有相关行。这对于需要多行数据的查询非常有用。pdostatement::fetchall()返回一个包含结果集中所有剩余行的数组。数组将每行表示为列值数组或具有与每个列名对应的属性的对象。如果要获取的结果为零,则返回空数组;如果失败,则返回false。 fetch() 用于从查询返回一行结果。这对于只需要一行结果的查询非常有用。这在用户登录时非常有用,这样您就不必通过循环数据将其分配给变量。从与pdostatement对象关联的结果集中获取行。fetch\u style参数确定pdo如何返回行。
offset
1条答案
按热度按时间31moq8wy1#
此错误不是由于使用
fetch()
或者fetchAll()
因为这两个函数都没有使用offset
,一定是您稍后在代码中所做的某些操作导致了此问题。我相信你的问题与你在价值观中的循环方式有关,因为你说当你使用
fetchAll()
. 循环引发错误是因为它试图访问不存在的偏移量,因为fetch()
将只返回一个结果,而fetchAll()
将从查询中返回多个。至于你的问题“两者有什么区别(
fetch()
&fetchAll()
),那我怎么用这两个呢?”,这是你的答案。fetchAll()
用于根据查询返回所有相关行。这对于需要多行数据的查询非常有用。
pdostatement::fetchall()返回一个包含结果集中所有剩余行的数组。数组将每行表示为列值数组或具有与每个列名对应的属性的对象。如果要获取的结果为零,则返回空数组;如果失败,则返回false。
fetch()
用于从查询返回一行结果。这对于只需要一行结果的查询非常有用。这在用户登录时非常有用,这样您就不必通过循环数据将其分配给变量。
从与pdostatement对象关联的结果集中获取行。fetch\u style参数确定pdo如何返回行。