gpt4 book ai didi

php - 用 PHP 中的数组元素替换准备好的语句占位符

转载 作者:行者123 更新时间:2023-11-29 03:23:03 25 4
gpt4 key购买 nike

我想用数组的元素替换准备好的语句中使用的占位符。

假设我有这个 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;

关于php - 用 PHP 中的数组元素替换准备好的语句占位符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40769420/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com