簡體   English   中英

用PHP中的數組元素替換准備好的語句占位符

[英]Replace prepared statement placeholders with array elements in PHP

我想將准備好的語句中使用的占位符替換為數組的元素。

假設我有以下sql字符串:

SELECT * FROM table WHERE col1 = ? AND col2 = ?

像這樣的數組:

$array = array(0=>'value1', 1=>'value2')

我的輸出應為:

SELECT * FROM table WHERE col1 = value1 AND col2 = value2

我讀到可以將數組用作PHP函數str_replace的參數,因此到目前為止,我的嘗試是:

function debugQuery($sql,$param){
    return $ret = str_replace('?', $param, $sql);
}

此函數而不是我想要的輸出返回:

SELECT * FROM table WHERE col1 = Array AND col2 = Array

我想我缺少了什么...

您的代碼是(您將可以刪除mysql_real_escape_string ,但這可以從sql-inj中刪除):

<?php
$sql = "SELECT * FROM table WHERE col1 = ? AND col2 = ?";
$array = array(0 => "TEST", 1 => "TEST2");
foreach ($array as $value) 
    $sql = preg_replace("#\?#", "'" . mysql_real_escape_string($value) . "'", $sql, 1);
echo $sql;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM