简体   繁体   English

PHP错误:“试图获取非对象的属性”

[英]PHP error: “Trying to get property of non-object”

I know this question has been asked alot of times earlier, but none of the other answers worked for me. 我知道这个问题已经被问过很多次了,但是其他答案对我都没有作用。 I'm having trouble on this line: 我在这条线上遇到麻烦:

$row = $conn->query("SELECT * FROM urls WHERE id = '$id'");

I followed a tutorial so I don't know if there is any other information that I should provide 我遵循了教程,所以我不知道是否应该提供其他信息

EDIT: 编辑:

heres the whole text document: 这是全文文件:

<?php  

    function idExists($id){
        include $_SERVER['DOCUMENT_ROOT'] . '/short/includes/init.php';
        $row = $conn->query("SELECT * FROM urls WHERE id = '.$id'");

        if($row -> num_rows > 0){
            return true;
        } else {
            return false;
        }
    }

    function urlHasBeenShortened($url){
        include $_SERVER['DOCUMENT_ROOT'] . '/short/includes/init.php';
        $row = $conn->query("SELECT * FROM urls WHERE link_to_page = '$url'");

        if($row->num_rows > 0){
            return true;
        } else {
            return false;
        }
    }

    function getURLID($url){
        include $_SERVER['DOCUMENT_ROOT'] . '/short/includes/init.php';
        $row = $conn->query("SELECT id FROM urls WHERE link_to_page = '$url'");

        return $row->fetch_assoc()['id'];
    }

    function insertID($id, $url){
        include $_SERVER['DOCUMENT_ROOT'] . '/short/includes/init.php';
        $conn->query("INSERT INTO urls (id, link_to_page) VALUES ('$id', '$url')");

        if(strlen($conn->error) == 0){
            return true;
        }
    }

    function getUrlLocation($id){
        include $_SERVER['DOCUMENT_ROOT'] . '/short/includes/init.php';
        $row = $conn->query("SELECT link_to_page FROM urls WHERE id = '$id'");

        return $row->fetch_assoc()['link_to_page'];
    }
?>

Init code 初始化代码

    <?php
$servername = "localhost";
$username = "root";
$password = "";

// Create connection
$conn = new mysqli($servername, $username, $password);

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 
echo "Connected successfully";
?>

errors on lines: 7, 18 线路错误:7、18

you did forget the database name : 您确实忘记了数据库名称:

$conn = new mysqli($servername, $username, $password);

// Create connection like this :
$conn = new mysqli($servername, $username, $password, $dbname);

change 更改

$row = $conn->query("SELECT * FROM urls WHERE id = '$id'");

to

$row = $conn->query("SELECT * FROM urls WHERE id = ".$id);

also change : 也改变:

if($row -> num_rows > 0)

to

if($row->num_rows > 0)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM