如何执行内连接sql

时间:2016-03-14 13:47:32

标签: php sql inner-join

尝试加入我的桌子,名为' UserCaseMessages'和我的另一张桌子一样叫做'评论'在php中使用这个确切的sql命令:

$sql = "
        SELECT UserCaseMessages.DefendantID, Comments.CommentID 
          FROM UserCaseMessages 
    INNER JOIN Comments 
            ON UserCaseMessages.DefendantID = Comments.SenderID
        ";

$result = $conn->query($sql);

if ($result->num_rows > 0) // ERROR GETS THROWN ON THIS LINE {

}

以下是我的数据库的连接部分(在查询之前发生):

$servername = "localhost";
$username = "username";
$password = "password";

// Get the username from the post
$userUsername = $_POST['string'];


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

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

我收到以下错误:

  

PHP注意:尝试获取非对象的属性

我无法弄清楚我在做错了什么!!一切都拼写正确,检查并检查任何语法错误,我找不到任何,但我是这个特定方法的新手。请帮忙!

1 个答案:

答案 0 :(得分:3)

由于您没有回复我的评论(在我提交此文件前约20分钟),我发布了以下答案。

您没有在此处选择数据库:

$servername = "localhost";
$username = "username";
$password = "password";

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

所以你需要添加数据库参数:

$servername = "localhost";
$username = "username";
$password = "password";
$database = "your_DB";

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

阅读有关连接MySQLi API的手册:

同时检查查询错误:

另外,确保POST数组确实包含值。关于您未发布的HTML表单的一些内容。

表单元素必须包含匹配的名称属性:

name="string"并且必须有<form>的POST方法。

  • method="post"

仅供参考:<form>相当于<form method="get">,因为如果不暗示POST,它默认为GET方法。

检查错误报告中的错误:

虽然,如果你的表单没有我已经提到的POST方法,你就不会得到错误,奇怪的

关于 $userUsername的旁注。

这是模棱两可的。如果您尝试针对该变量运行查询,则需要使用WHERE子句。

即:WHERE column = '$userUsername'