"Turgay Metal", "cTelephone" => "5556162"); 我-6ren">
gpt4 book ai didi

php - 将数组键和值传递给 Mysql 查询字符串

转载 作者:行者123 更新时间:2023-11-30 23:35:13 24 4
gpt4 key购买 nike

我有一个数组代表我的 SQL 查询的 WHERE 子句。

$qWhere= array("cName" => "Turgay Metal", "cTelephone" => "5556162"); 

我的函数是:(简化)

<?php
function getAll($tableName,$qWhere="") {
$qWhere = $qWhere == "" ? $qWhere : (" WHERE " . $qWhere);
$sql = "SELECT * FROM $tableName $qWhere";}

所以我需要编写另一个函数来将 foreach 的数组序列化为 $k = '$v' 然后加入“AND”然后返回字符串。最后将字符串提供给主函数:

function arr2sql($qWhere) {
foreach ($qWhere as $key=>$value) { $fields[] = sprintf("%s = '%s'", $key, secure($value));}
$field_list = join(' AND ', $fields); unset($qWhere);
return $field_list;
}

这是正确的方法还是可以更干净、更专业地实现?

感谢您的帮助。

最佳答案

我觉得挺好看的;我喜欢。我假设 secure() 可以防止 sql 注入(inject)。我真的看不出有什么我会改变的。

可以从 for 循环中取出大括号,因为它只有一个语句,但这没什么大不了的

foreach ($qWhere as $key=>$value)
$fields[] = sprintf("%s = '%s'", $key, secure($value));

关于php - 将数组键和值传递给 Mysql 查询字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8021866/

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