короткие функции mysqli

105
08 июля 2021, 07:40

создал функцию add

function add($sql, array $param)    
{    
global $db;    
$str_column = '';    
$str_values = '';    
$array = [];    
foreach($param as $column => $value)    
{
$name_column = explode('/', $column)[0];    
$str_column .= (! empty($str_column) ? ', ' : null).'`'.$name_column.'`';    
$str_values .= (! empty($str_values) ? ', ' : null).':'.$name_column; 
$array[$column] = $value;    
}    
return $db->query('INSERT INTO `'.$sql.'` ('.$str_column.') VALUES ('.$str_values.')', $array);    
}    

не работает.

var_dump    
string(23) "`title`, `type`, `text`"     
string(20) ":title, :type, :text"    

в ошибке пишет что массив $array лишнее.

помогите исправить или создать такую функцию.

запрос

add('table', [    
'test' => $test     
]);    
Answer 1

Как то вот так можно, наверное

function add($sql, array $param)    
{    
   global $db;    
   foreach($param as &$v) { $v = $db->real_escape_string($v); }
   return $db->query('INSERT INTO `'.$sql.'` (`'.
            implode('`,`', array_keys($param)).'`) VALUES ("'. 
            implode('","', $param) . '")');    
}

при вот таком вызове

add('mytable', ['a'=>'b', 'c'=>'e']);

генерит

INSERT INTO `mytable` (`a`,`c`) VALUES ("b","e")
READ ALSO
Загрузка multiple файлов на диск

Загрузка multiple файлов на диск

$files это массив, получаемый отсюда

75
Undefined offset

Undefined offset

Что может вызвать данную ошибку? Код

95
Чем описание объектов в applicationContext Spring лучше кода Java

Чем описание объектов в applicationContext Spring лучше кода Java

Начал знакомство с фреймворком Spring и встал вопросЕсли мы описываем те же самые зависимости в файле "applicationContext" между классами, то чем же лучше...

87
Создание файла в внутренней памяти

Создание файла в внутренней памяти

Задача следующая - нужно создать файл во внутренней памяти телефонаПричем не в /data/user/

120