2017-08-06 83 views
0

我知道这个问题早已被问过很多次,但没有其他答案为我工作。我在这条线的麻烦:PHP错误:“试图获取非对象的属性”

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

我跟着一个教程,所以我不知道是否有任何其他信息,我应该提供

编辑:

继承人整个文本文档:

<?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']; 
    } 
?> 

初始化代码

<?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"; 
?> 

错误上线7条,18

+1

'ID = '$ id''应该是'ID =' $ id.'' –

+2

你忘记添加数据库名称:/你的连接 – yoeunes

+0

您应该检查query()的返回值是否调用“=== FALSE”。如果是这样的话,你的查询中可能会出现语法错误(例如传入的用户数据)。您可以尝试打印整个查询,以便查看正在查询的内容。 – PhilMasterG

回答

2

你忘掉了数据库名称:

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

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

变化

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

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

也随之变化:

if($row -> num_rows > 0) 

if($row->num_rows > 0) 
相关问题