在PHP MySQL查询中使用变量

时间:2013-04-05 04:02:09

标签: php mysql

我想在PHP MySQL查询中使用一个变量来表示WHERE子句,如下所示:

$where= name=mark AND address=4;

$query= "SELECT * FROM clients WHERE $where";

我这样做是对的吗?如果不是,那么正确的做法是什么?

3 个答案:

答案 0 :(得分:1)

你的PHP方法是正确的,但你需要在SQL中的字符串周围用单引号,你还需要用引号包装你的字符串php变量,所以你的变量应该如下所示:

$where = "name = 'mark' AND address = 4";
$query = "SELECT * FROM clients WHERE {$where}";

答案 1 :(得分:1)

这就是你想要的:

$where = "name= 'mark' AND address= '4'";

$query= "SELECT * FROM clients WHERE $where";

将双引号括在$ where的值附近。 MySQL表字段的值也应该用引号

包装

答案 2 :(得分:0)

你在引号内处理php变量的做法是错误的..你的语法也是错误的。 每当你想在侧面双引号中使用php变量时,你应该将它包含在方括号{}中。 由于您使用$where作为字符串,因此应将其正确地包含在字符串

$where= "name='mark' AND address=4";

$query= "SELECT * FROM clients WHERE {$where}";

虽然这可能与此不相关,但另一个好的做法是在使用带有字符串的php变量时使用sprintf()

$query = sprintf("SELECT * FROM clients WHERE %s", $where);
相关问题