Передача ключей массива и значений в строку запроса Mysql

У меня есть массив, представляющий предложение WHERE моего SQL-запроса.

$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; } с 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; } 

Правильно ли это или может быть достигнуто более чистое и профессиональное?

Спасибо за помощь.

Related of "Передача ключей массива и значений в строку запроса Mysql"

Я думаю, это выглядит довольно хорошо; Мне это нравится. Я предполагаю, что secure() защищает от SQL-инъекции. Я не вижу ничего, что мог бы изменить.

Вы можете взять фигурные скобки из цикла for с момента его одного заявления, но это не biggy

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