在MySQL语句中动态使用PHP变量

时间:2015-09-19 15:50:01

标签: php mysql sql

我正在尝试执行以下查询。

nameOfAlicesFavourite.onValue (vName) ->
  console.log vName

我希望我的查询是这样的,但动态:

$condition = "WHERE emp_id = '$emp_id'"; 
$myquery = "SELECT * FROM emp_table".$condition;

是否有通过php中的变量动态生成SQL语句??

3 个答案:

答案 0 :(得分:1)

应该是

$condition = "WHERE emp_id = '$emp_id'"; 
$myquery = "SELECT * FROM emp_table ".$condition;

你忘了把$放在myquery上

答案 1 :(得分:0)

你试过这个吗? -

$condition = "WHERE emp_id = '" . $emp_id . "'"; 
$myquery = "SELECT * FROM emp_table " . $condition;

PHP不会在单引号字符串中扩展变量。

echo "$name"; //works

echo '$name'; //does not work

看看这个:Single quotes or double quotes for variable concatenation?

答案 2 :(得分:0)

你永远不应该像那样动态地构建查询。正确的方法是使用prepared statements

在你的情况下,它会像那样

$statement = $pdo->prepare("SELECT * FROM emp_table WHERE emp_id = :emp_id");
$statement->execute(array(
    ':emp_id' => $emp_id
));

$rows = $statements->fetchAll(PDO::FETCH_ASSOC);