我需要在mysql循环中使用生成的字符串作为数组。字符串/数组内置于 $argumentarray
从 $rows
参数和之后应用作 multiSQLarray[]
函数称为:
multiSQL('**id,title,description,link**','menu')
字符串正确生成为
array('id' => $result['id'],'title' => $result['title'],'description' => $result['description'], 'link' => $result['link'])
但是它没有将它用作数组的字符串,而是将它添加到sql的每个结果的数组中
Array ( [0] => array('id' => $result['id'],'title' => $result['title'],'description' => $result['description'], 'link' => $result['link']) [1] => array('id' => $result['id'],'title' => $result['title'],'description' => $result['description'], 'link' => $result['link']) )
我所期望的是作为数组的sql结果
Array ( [0] => Array ( [id] => 1 [title] => Customers [description] => Display the Customer Dashboard [link] => index.php ) [1] => Array ( [id] => 2 [title] => Server [description] => Display all Servers [link] => servers.php ) )
我的代码:
function multiSQL($rows=null,$table=null,$select=null) {
if(is_null($select)) {$filter="";} else { $filter = ' where '.$select; }
global $pdo;
$sql = 'SELECT '.$rows.' FROM '.$table.$filter.'';
$connection =$pdo->prepare($sql);
$connection->execute();
$multiSQLarray = array();
$arguments = explode(',',$rows);
$argumentarray = "";
$argumentscount=count($arguments);
$loopcount = 1;
foreach($arguments as $argument){
if($loopcount==$argumentscount){
$loopcount++;
$argumentarray = $argumentarray.' \''.$argument.'\' => $result[\''.$argument.'\']';
}
else{
$loopcount++;
$argumentarray = $argumentarray.'\''.$argument.'\' => $result[\''.$argument.'\'],';
}
}
$argumentarray = 'array('.$argumentarray.')';
echo $argumentarray.'<br><br>';
while ($result = $connection->fetch(PDO::FETCH_BOTH)) {
//$multiSQLarray[] = array('id' => $result['id'], 'title' => $result['title'], 'description' => $result['description'], 'link' => $result['link']);
$multiSQLarray[] = $argumentarray;
}
print_r($multiSQLarray);
return $multiSQLarray;
1条答案
按热度按时间muk1a3rh1#
结构化数据是结构化数据。可以是字符串或数组。我搞不懂你的一些代码。字符串中的数组。。。除非你想用评估。我想那有点把你的问题弄糊涂了。
您需要考虑的一件事是您将如何暴露于sql注入。基本上从不信任用户对吗?因此,您可以在代码中执行类似predfine的操作,即允许的列。如果提交的表单引用了未列入白名单的内容,请停止!此外,还必须考虑转义用户提供的值。
我想让我的函数接受一个已知的,对它需要传递的东西有意义的参数。。。首先清理这些内容,然后将一些最有意义的数据类型传递给函数。也许是。。。
也许看看一些框架或者类似orm的理论?可以看到select语句的oop表示的一些好例子。使动态查询构建更加容易。最后还要干杯。