PHP:包含一个包含$ variables的SQL查询

时间:2016-09-22 08:33:17

标签: php mysql sql

我真的不喜欢在我的PHP中编写SQL查询。

给出以下示例PHP:

的script.php

$name = 'Bill'
$query = "SELECT * FROM a_table WHERE name='$name'";

我想在它自己的文件中编写sql查询,并包含(或以其他方式)将内容写入我的脚本:

query.sql的

SELECT * FROM a_table WHERE name='$name'

的script.php

// This doesn't work obviously
$query = '"'.include('query.sql').'"';

请注意,我希望能够在SQL查询中引用PHP变量(例如:$ name是在script.php中声明的,但是作为查询的一部分使用)。

2 个答案:

答案 0 :(得分:3)

简单明了的解决方案:

 $sql = file_get_contents("query.sql");

为了引用变量,我建议使用PDO,你可以像这样引用

$query = $db->query( "SELECT x FROM x WHERE x = :example")
$query->execute(array("example"=>$value));

...但你可以在mysqli等中做类似的事情。

答案 1 :(得分:1)

<强> query.sql的:

SELECT * FROM a_table WHERE name=:name

<强>的script.php:

$query = file_get_contents('path/to/query.sql');

然后绑定参数并执行查询。

请参阅How can I prevent SQL-injection in PHP?,了解为什么要绑定变量而不是将它们连接到查询字符串中。