标题可能有点误导,我无法想出更好的东西。
我有这个小小的函数,允许其他人基本上在一行中执行选择查询,他们会在函数的参数中传递数组中的where critieria。
该函数将准备查询(预处理语句),然后执行它,将结果返回到数组中。
因此循环必须在函数外部完成,以显示结果而不是内部。 我的问题是什么是一个很好的方法。我可以使用foreach,但它一团糟,并显示两次,并不是显示数据库结果的方式。当我这样做时,while循环会触发无限循环
while($foo = $result){}
$ result是数组。
这是我的功能
<?php
$array = array("id" => 3);
$operator = "AND";
function fetch_stuff($table, $where, $operator){
$counter = 0;
$params = null;
$param_vals = null;
$count = count($where);
$query = "SELECT * FROM $table";
if($where != null){
$query .=" WHERE ";
foreach($where as $value){
$counter++;
$output = array_search($value, $where);
$query .= "$output = :$output ";
if($count > 1){
if($counter > $count){
} else {
$query .="$operator ";
}
}
}
}
//Database settings, please edit them
$dbh = new PDO('mysql:dbname=freelance; host=localhost', 'root', '********');
$statement = $dbh->prepare($query);
foreach($where as $value){
$output = array_search($value, $where);
$statement->bindParam(":$output", $value);
}
$statement->execute();
$result = $statement->fetch();
return $result;
}
$result = fetch_stuff('news', $array, $operator);
如果我得到一些关于最佳方法的建议,我会非常感激:) 感谢。