我可以在mysql查询列中使用PHP函数吗?

时间:2017-07-29 11:50:01

标签: php mysql

我想列出这部电影的信息。

$sql = "SELECT * FROM movies WHERE title LIKE '%".$_GET['search']."%'";

但是$_GET['search']被修改为url名称,因此查询dosn不会给出任何结果。 我可以在标题栏中使用modurl() php函数吗?

我想要这样的事情:

$sql = "SELECT * FROM movies WHERE modurl(title) LIKE '%".$_GET['search']."%'";

2 个答案:

答案 0 :(得分:0)

您可以使用[urldecode][1]

$sql = "SELECT * FROM movies WHERE modurl(title) LIKE '%".urldecode($_GET['search'])."%'";

答案 1 :(得分:0)

除了Rishi的回答:

虽然可以,但不建议直接将url查询放入SQL中。 这将允许SQL注入和数据库的安全威胁。

相反,您可以使用预准备语句和参数化查询。例如:

$title = urldecode($_GET['search']);

$stmt = $pdo->prepare("SELECT * FROM movies WHERE title LIKE :title");
$stmt->execute(array('title' => $title));

foreach ($stmt as $row) {
    // do something with $row
}

您可以阅读有关SQL注入here的更多信息。