gpt4 book ai didi

PHP使用方法的返回值作为查询函数的参数的问题

转载 作者:行者123 更新时间:2023-11-30 00:16:47 25 4
gpt4 key购买 nike

我有一个函数查询:

function query() {
global $link;
$debug = false;

//get the sql query
$args = func_get_args();
$sql = array_shift($args);

//secure the input
for ($i=0;$i<count($args);$i++) {
$args[$i] = urldecode($args[$i]);
$args[$i] = mysqli_real_escape_string($link, $args[$i]);
}

//build the final query
$sql = vsprintf($sql, $args);

if ($debug) print $sql;

//execute and fetch the results
$result = mysqli_query($link, $sql);
if (mysqli_errno($link)==0 && $result) {

$rows = array();

if ($result!==true)
while ($d = mysqli_fetch_assoc($result)) {
array_push($rows,$d);
}

//return json
return array('result'=>$rows);

} else {

//error
return array('error'=>'Database error');
}
}

当我像这样使用它时,该函数工作得很好:

$g = "05%";
$result = query("SELECT * FROM table_name WHERE table_column LIKE '%s'", $g);
print json_encode($result);

但是,当 $g 是从方法检索的值时,我没有得到任何结果。例如,假设我有一个来自 Date 类的 getMonth() 方法,当回显时,该方法将 5 月份的当前月份返回为 05%。我尝试下面的代码,但没有从数据库中得到任何结果:

$time = new Date();
//$g = "05%"; this would definitely get results from the db
$h = $time->getMonth();
echo $h; //this displays 05% on the screen
$result = query("SELECT * FROM table_name WHERE table_column LIKE '%s'", $h);
print json_encode($result);

我很确定我犯了一个简单的错误,但我似乎无法弄清楚。我怎样才能解决这个问题?任何帮助将不胜感激。

最佳答案

做一些你的方法只返回 05% 中的 05 部分的事情。并在其后附加 % 例如

$h = $time->getMonth(); 
$h = "$h%";

然后它应该可以工作

关于PHP使用方法的返回值作为查询函数的参数的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23592447/

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