MySQL查询权限语法

时间:2017-11-26 09:20:48

标签: mysql

$query = mysqli_query($link, "SELECT *
    FROM table
    WHERE column=" . row_data['column'] . " ") or die(mysqli_error($link));

有人能告诉我语法有什么问题吗?老实说,我会在一小时内解决这个问题,但到目前为止我无法弄明白。我认为这是在语法上可能我的quoutes被置于错误的位置?

row_data['column']等于value a

如果我将其硬编码,则输出会产生结果。

$query = mysqli_query($link, "SELECT *
    FROM table
    WHERE column='value a'") or die(mysqli_error($link));

错误

Unknown column 'value a' in 'where clause'

1 个答案:

答案 0 :(得分:2)

你只想念单引号:

$query = mysqli_query($link, "SELECT *
    FROM table
    WHERE column='" . row_data['column'] . "' ") or die(mysqli_error($link));

在第二个示例中,您在第一个示例中放置了单引号。

我猜您的数据来自另一个查询,因此您可以考虑加入以减少查询次数。

如果数据来自用户输入,您应该查看准备好的语句。如果您将用户输入直接放入查询中,则可以进行sql注入。

最后但并非最不重要的是,如果你还在学习,请查看pdo而不是mysqli