Php 注意:尝试获取第35行中非对象的属性“num_rows”
我不明白。我想从数据库中获取一个字符串,并将其添加到另一个字符串中以获取结果Php 注意:尝试获取第35行中非对象的属性“num_rows”,php,Php,我不明白。我想从数据库中获取一个字符串,并将其添加到另一个字符串中以获取结果 if (isset($_POST['key'])) { $conn = new mysqli('localhost', 'root', '', 'ams'); if ($_POST['key'] == 'getStudentsData') { $start = $conn->real_escape_string($_POST['start']); $limit =
if (isset($_POST['key'])) {
$conn = new mysqli('localhost', 'root', '', 'ams');
if ($_POST['key'] == 'getStudentsData') {
$start = $conn->real_escape_string($_POST['start']);
$limit = $conn->real_escape_string($_POST['limit']);
$set = $conn->query("SELECT * from teachers where id =$uid");
$dat = $set->fetch_array();
$dat = join(', ', $dat);
$sql = $conn->query("SELECT * FROM logins WHERE subject IN $dat LIMIT $start, $limit");
if (!empty($sql) && $sql->num_rows > 0) {
$response = "";
while ( $data = $sql->fetch_array(MYSQLI_ASSOC)) {
$response .= '
<tr class="text-center">
<td>' . $data["fname"] . ' ' . $data["lname"] . '</td>
<td>' . $data["matno"] . '</td>
<td>' . $data["email"] . '</td>
<td>' . $data["phone_no"] . '</td>
<td class="text-center">
<button value="Edit" class="btn btn-primary"> ' . $user->i('upload') . '</button>
<button value="View" class="btn">' . $user->i('eye') . '</button>
<button value="Delete" class="btn btn-danger">' . $user->i('trash') . '</button>
</td>
</tr>
';
}
exit($response);
} else
exit('reachedMax');
}
}
错误是:
注意:尝试获取第35行中非对象的属性“num_rows”
你需要牙套来支撑你的脚!这将更正您的sql语句。尽管如此,我还是建议您在将$dat传递到sql查询之前添加一个检查,以确定它是否为空
$conn->query("SELECT * FROM logins WHERE subject IN ($dat) LIMIT $start, $limit");
然后最佳实践是显式检查查询结果是否为真
if ($sql === false) {
exit('reachedMax');
}
//come here if the query is successfully executed
我以前也有同样的问题
$q1 = "SELECT * ".
"FROM admin, student ".
"WHERE admin.pcode = student.code AND admin.puser_name = student.puser_name AND admin.id IN (SELECT admin.id FROM admin ORDER BY admin.id DESC LIMIT 1) ";
这个问题是由于限制造成的。我不知道为什么当我在那里设置限制时会显示错误,而当我从查询中删除限制时,错误就会消失。我在$dat中没有看到。这一行$sql=$conn->querySELECT*来自登录,其中$dat LIMIT$start$LIMIT;没有返回有效的结果,因此您无法在结果集中使用->num\u行。我可以修复它吗?否决投票的原因是什么?