在sql语句中包含变量的正确方法是什么

时间:2017-08-15 00:21:55

标签: php mysql sql

我想在我的sql语句中包含一个变量,但它不输出任何数据。 如何正确包含变量?

$vStyles = $wpdb->get_results( 'SELECT slug from vf_venuestyles WHERE vid = "$vid"');

3 个答案:

答案 0 :(得分:1)

更改引号周围: $vStyles = $wpdb->get_results("SELECT slug from vf_venuestyles WHERE vid = '$vid'");

但是,除非该函数/类已经对此做了一些神奇的事情,否则你应该考虑使用具有适当预处理语句的东西。

答案 1 :(得分:0)

最好的方法是使用预备声明

$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)");
$stmt->bindParam(':name', $name);
$stmt->bindParam(':value', $value);

// insert line
$name = 'one';
$value = 1;
$stmt->execute();

答案 2 :(得分:0)

如果变量位于 double 引号内,则只会执行变量。

只需像这样交换你的引号:

$vStyles = $wpdb->get_results("SELECT slug from vf_venuestyles WHERE vid = '$vid'");

查询与变量结合起来,就像这样,记住还要包含二级引号:

$vStyles = $wpdb->get_results('SELECT slug from vf_venuestyles WHERE vid = '" . $vid . '"');

希望这有帮助! :)