PHP反向存储过程函数?

时间:2017-12-31 13:38:12

标签: php mysql sql

假设我在变量中有以下查询:

$sql = "select id, salary, fname, lname from users where id = ? and salary > ?";

和这样的数组:

$params = array (
  0 => '38765',
  1 => '4000');

我想知道是否有一个简单的内置PHP来替换"?"在查询中获得以下结果:

"select id, salary, fname, lname from users where id = '38765' and salary > '4000' ";

查询不会被执行,这更像是一个棘手的操作问题而不是sql。

这和我一样接近,但看起来PHP可能会为它构建一些东西:

foreach ($params as $param){
    $pos = strpos($sql, '?');
    $sql = substr_replace($sql, "'".$param."'", $pos, 1);
}

1 个答案:

答案 0 :(得分:1)

是的,有。

请参阅php.net的此代码示例

$stmt = $dbh->prepare("SELECT * FROM REGISTRY where name = ?");
if ($stmt->execute(array($_GET['name']))) {
  while ($row = $stmt->fetch()) {
    print_r($row);
  }
}

http://php.net/manual/en/pdo.prepared-statements.php#example-1016

但是此变体要求您使用PDO

有关详细信息,请参阅此链接: http://php.net/manual/en/book.pdo.php