得到了一些我正在努力的PHP代码 - 在谷歌等地搜索并尝试了所提到的一切,但由于某种原因我无法解决它.
问题是:
我有一些代码正在查询数据库是否存在特定用户.
代码(它是类中的方法)
<?php
global $mysqli;
// Query specified database for value
$q = 'SELECT id FROM ' . $database . ' WHERE username = \'' . $username . '\'';
$r = $mysqli->query($q);
var_dump($r);
if ($r->num_rows) {
// If row found username exists so return false
return false;
}
...
?>
Run Code Online (Sandbox Code Playgroud)
我已经转储了查询的结果($ r)并得到了这个:
object(mysqli_result)#4 (5) { ["current_field"]=> int(0) ["field_count"]=> int(1) ["lengths"]=> NULL ["num_rows"]=> int(1) ["type"]=> int(0) }
Run Code Online (Sandbox Code Playgroud)
这是正确的,上面应该只有1行.
我确实得到这个错误链接到行说 if ($r->num_rows) {
注意:尝试在LINE行的FILE中获取非对象的属性
但我不知道为什么因为该对象是有效的(如上所述),它应该工作正常.从我所能看出它似乎正常,我只是想知道为什么会有错误.我相信这很简单,但我会感激任何帮助.
kem*_*ila 18
$sql = "SELECT * FROM table";
$result = $conn->query($sql);
if (!$result) {
trigger_error('Invalid query: ' . $conn->error);
}
Run Code Online (Sandbox Code Playgroud)
使用mysqli_error()函数检查错误
可能你的查询有一些错误.
Rel*_*rus -2
只是想我会对此进行一些扩展。
如果执行返回 0 个结果的 MYSQLI SELECT 查询,则返回 FALSE。
但是,如果您收到此错误并且您已经编写了自己的 MYSQLI 查询函数,那么如果您运行的查询不是选择而是更新,您也可能会收到此错误。更新查询将返回 TRUE 或 FALSE。因此,如果您只是假设任何非错误结果都会返回记录,那么当您运行更新或除选择之外的任何操作时,您就会出错。
一旦您检查其不为假,最简单的解决方案是首先检查查询的结果是否是一个对象。
$sqlResult = $connection->query($sql);
if (!$sqlResult)
{
...
}
else if (is_object($sqlResult))
{
$sqlRowCount = $sqlResult->num_rows;
}
else
{
$sqlRowCount = 0;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
74270 次 |
| 最近记录: |