Php 新的内部连接

Php 新的内部连接,php,sql,join,Php,Sql,Join,我从未使用过内部连接,我想一切都是新的东西 我会解释我的问题: 我在mysql中有两个表,一个称为category,第二个称为post,所有类别名称/行都是ofc到表类别中,与该类别相关的帖子都在post中。我举了一个类别名称和帖子的例子 我用于ex:Test的类别名称 与类别测试相关的帖子ID计数为1,因此链接将被删除 /category.php?nameID=Test&id=1此url仅显示表的第ID1行中的内容,现在当我将url中的Test替换为ex.Hello/category.php?

我从未使用过内部连接,我想一切都是新的东西

我会解释我的问题: 我在mysql中有两个表,一个称为category,第二个称为post,所有类别名称/行都是ofc到表类别中,与该类别相关的帖子都在post中。我举了一个类别名称和帖子的例子

我用于ex:Test的类别名称

与类别测试相关的帖子ID计数为1,因此链接将被删除

/category.php?nameID=Test&id=1此url仅显示表的第ID1行中的内容,现在当我将url中的Test替换为ex.Hello/category.php?nameID=Hello&id=1时,我仍然从表post收到id 1的内容,我不想要,因为post计数id 1与我想要的Hello类别无关收到类似此帖子的错误,此类别中不存在此帖子

下面是&id=的mime代码: 现在在“where子句”中有未知列“Test”出现此错误


此代码存在多个问题,首先, 正如alexander所指,您的数据不会被转义

您正在将测试直接传递到查询中,这意味着查询没有将其视为字符串—它需要一个列名,您可以通过在变量“$id”周围添加引号来解决这一问题。即使已对其进行转义,查询也需要引号将其标识为字符串

如果需要内部联接,语法如下所示:

"SELECT * FROM category INNER JOIN post ON category.name = post.cat WHERE post.cat = '" .$naamID "'"

这本质上告诉DB,我需要category和post中的所有列,将category.name视为与post.cat相同的内容,并且只检索post.cat=whatever的行。请注意,如果改为放置category.name,它将执行相同的操作,因为内部联接将两者合并。

这是无效的category.name=post.cat=.$naamID。应该是category.name=post.cat和post.cat='.$naamID'。请注意单引号,同样,从category,post中选择*FROM category.name=post.cat与从category.name=post的category内部连接post中选择*FROM category相同。cat@GolezTrol,测试来自数据,而不是查询。插入的文本将作为列,而不是值。谢谢!最后,在花了很多时间来解决这个问题之后,我现在得到了一个blanco页面,有没有办法得到它?再次感谢你,我不确定你的意思,但是我会在mysql查询之后查看页面为空的代码是or die。可能正在评估die命令,但没有sql错误,留下空白页。
"SELECT * FROM category INNER JOIN post ON category.name = post.cat WHERE post.cat = '" .$naamID "'"