Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 注意:尝试获取第35行中非对象的属性“num_rows”_Php - Fatal编程技术网

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"] . '&nbsp' . $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行。我可以修复它吗?否决投票的原因是什么?