Php 如何执行内部联接sql
尝试在php中使用此sql命令将我的名为“UserCaseMessages”的表与另一个名为“Comments”的表连接起来:Php 如何执行内部联接sql,php,sql,inner-join,Php,Sql,Inner Join,尝试在php中使用此sql命令将我的名为“UserCaseMessages”的表与另一个名为“Comments”的表连接起来: $sql = " SELECT UserCaseMessages.DefendantID, Comments.CommentID FROM UserCaseMessages INNER JOIN Comments ON UserCaseMessages.DefendantID = Comments
$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注意:尝试获取非对象的属性
我不知道我做错了什么!!所有的东西都拼写正确,并且检查了语法错误,我找不到任何错误,但是我对这个特殊的方法是新的。请帮忙 因为在我提交这篇文章之前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,并且必须有用于的POST方法
方法=post。
仅供参考:等同于,因为如果未暗示POST,则默认为GET方法
使用错误报告检查错误:
尽管如此,如果您的表单没有我已经提到的POST方法,您不会因此而出错,这是很奇怪的
关于$userUsername的旁注
这是模棱两可的。如果试图对该变量运行查询,则需要使用WHERE子句
例如:WHERE column='$userUsername'我不认为PHP错误来自于那一行。您需要显示生成error.PHP错误的代码,而不是SQL错误;数据库连接/查询的代码部分;导致错误的确切代码行。@jimmy:该错误表示数据库查询失败,因此$result不是结果对象。这可能是假的。$conn上可能有一个方法,可以用来在执行查询后检查潜在的错误。查询中的某些内容失败,您需要获取该错误消息以确定失败原因。我已将其更新为显示$conn详细信息等。我为没有及时回复您的评论而道歉,只问一个问题:您如何查找数据的名称base@jimmy你好,吉米。如果你进入phpmyadmin,你会在创建表的地方看到它。@jimmy也看看这个页面,它向你展示了如何使用PHP。只需将db变量替换为您自己的变量。感谢您如此出色地工作!:@吉米,不客气,吉米,干杯