INNER加入新手

时间:2014-04-07 16:34:22

标签: php sql join

我从来没有使用过Inner join。我想,一切都是新的东西。

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

我用于ex的类别名称:Test

与类别post相关的帖子的ID为Test,因此链接将为

1当我将网址中的/category.php?nameID=Test&id=1替换为ex时,此网址会显示表格ID 1的行post中的内容。 Test Hello我仍然从表/category.php?nameID=Hello&id=1收到我不想要的ID 1内容,因为帖子计数postID 1的类别我希望收到类似Hello

的错误

以下是This post doesn't exist in this category.的mime代码: 现在出现此错误&id=

Unknown column 'Test' in 'where clause'

1 个答案:

答案 0 :(得分:2)

此代码存在多个问题,首先, 正如亚历山大所指出的那样,你的数据不会被转义。

您正在将Test直接传递给查询,这意味着查询不将其视为字符串(它期望列名称),您可以通过在变量周围添加引号来解决此问题(' $ id& #39)。即使您已将其转义,查询也需要引号将其标识为字符串。

如果您想要内部联接,语法将如下所示:

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

这实际上告诉DB,我想要类别AND post中的所有列,将category.name视为与post.cat相同的东西,并且只检索post.cat = whatever的行。 (注意,如果你输入category.name而不是它会做同样的事情,因为内连接合并了两个)。