<?php
$host = 'localhost';
$user = 'dk';
$password = '12345';
$database = 'ac_new';
$host,
$user,
$password,
$database);
if (!$connect) {
}
// получение структуры таблицы
function show_col ($connect, $cols_need, $table) {
$query="SHOW COLUMNS FROM ".$table."";
if ($res) {
foreach ($row as $key =>$value) {
$sub_data[$key]=$value;
}
}
$data['columns'][$row['Field']]=$sub_data;
}
} else {
echo "<br> Ошибка выполнения запроса: ".mysqli_error($link); }
return $data;
}
function print_arr ($arr) {
echo '<pre>';
echo '</pre>';
}
function update_base ($connect, $data, $table, $operation) {
$cols_need=array('Extra'); $table_data= show_col ($connect, $cols_need, $table); // получили все поля таблицы
$col_keys=array_keys($table_data['columns']); // получили ключи полей
$keys="";
$values="";
$pairs="";
foreach ($data as $key => $value){
//проверяем есть ли такое поле в таблице
//проверяем на auto_increment
if ($key=="uid" or $key=="id" ) {
//для update
if ($operation=='update') {
$where_update="`".$key."` = ".$value;
} else { //если add или delete
if ($table_data['columns'][$key]['Extra']=='auto_increment') {
$value="";
} else {
//ищем максимальный uid в базе
$q="SELECT max(".$key.") FROM ".$table;
//присваиваем следующий
$value=$res[0]+1;
}
}
}
//для удаления
$need_delete=implode($data); //получаем массив id $where_delete="`".$key."` IN (".$need_delete.")";
$keys.="`".$key."`, ";
$values.="'".$value."', ";
$pairs.="`".$key."`="."'".$value."', ";
}
}
$keys= substr($keys, 0, strlen($keys) - 2); //удаляем хвосты
switch ($operation) {
case 'add':
$query="INSERT INTO ".$table." (".$keys.") VALUES (".$values.")";
break;
case 'update':
$query="UPDATE ".$table." SET ".$pairs." WHERE ".$where_update;
break;
case 'delete':
$query="DELETE FROM ".$table." WHERE ".$where_delete;
break;
}
echo '<br>'.$query;
//$res = mysqli_query($connect, $query);
if ($res) {
echo 'Запрос выполнен успешно';
} else {
echo 'Запрос не выполнен - проверьте код: '.mysqli_error($connect); }
} //конец функции
$data=array('id'=>'7', 'city'=>'Иваново'); //массив данных, получаемый из форм $table='cities2'; //таблица
$operation='update'; //тип операции
update_base ($connect, $data, $table, $operation);
PD9waHAKCiRob3N0ID0gJ2xvY2FsaG9zdCc7IAokdXNlciA9ICdkayc7IAokcGFzc3dvcmQgPSAnMTIzNDUnOyAKJGRhdGFiYXNlID0gJ2FjX25ldyc7IAoKJGNvbm5lY3QgPSBAbXlzcWxpX2Nvbm5lY3QoIAogICAgICAgICAgICAkaG9zdCwKICAgICAgICAgICAgJHVzZXIsICAgIAogICAgICAgICAgICAkcGFzc3dvcmQsIAogICAgICAgICAgICAkZGF0YWJhc2UpOyAgIAoKbXlzcWxpX3NldF9jaGFyc2V0KCRjb25uZWN0LCAidXRmOCIpOwoKaWYgKCEkY29ubmVjdCkgeyAKICAgZWNobyAi0J7RiNC40LHQutCwINC/0L7QtNC60LvRjtGH0LXQvdC40Y8uIDxicj4g0JrQvtC0OiAiLm15c3FsaV9jb25uZWN0X2Vycm5vKCkuICIuINCf0L7Rj9GB0L3QtdC90LjQtTogIi5teXNxbGlfY29ubmVjdF9lcnJvcigpOyAKICAgZXhpdDsgCn0gCi8vINC/0L7Qu9GD0YfQtdC90LjQtSDRgdGC0YDRg9C60YLRg9GA0Ysg0YLQsNCx0LvQuNGG0YsKZnVuY3Rpb24gc2hvd19jb2wgKCRjb25uZWN0LCAkY29sc19uZWVkLCAkdGFibGUpIHsKCSRkYXRhPWFycmF5KCk7CgkKCSRxdWVyeT0iU0hPVyBDT0xVTU5TIEZST00gIi4kdGFibGUuIiI7CgkkcmVzPW15c3FsaV9xdWVyeSgkY29ubmVjdCwgJHF1ZXJ5KTsKCQoJaWYgKCRyZXMpIHsKCQl3aGlsZSgkcm93PW15c3FsaV9mZXRjaF9hc3NvYygkcmVzKSkgewoJCQkJCWZvcmVhY2ggKCRyb3cgYXMgJGtleSA9PiR2YWx1ZSkgewoJCQkJCQkJaWYgKGluX2FycmF5KCRrZXksJGNvbHNfbmVlZCkpIHsKCQkJCQkJCSRzdWJfZGF0YVska2V5XT0kdmFsdWU7CQoJCQkJCQl9CgkJCQkJfQoJCQkJJGRhdGFbJ2NvbHVtbnMnXVskcm93WydGaWVsZCddXT0kc3ViX2RhdGE7CgkJfSAKCX0gZWxzZSB7CgkJZWNobyAiPGJyPiDQntGI0LjQsdC60LAg0LLRi9C/0L7Qu9C90LXQvdC40Y8g0LfQsNC/0YDQvtGB0LA6ICIubXlzcWxpX2Vycm9yKCRsaW5rKTsKCX0KCQoJcmV0dXJuICRkYXRhOwp9CgpmdW5jdGlvbiBwcmludF9hcnIgKCRhcnIpIHsKCWVjaG8gJzxwcmU+JzsKCQlwcmludF9yKCRhcnIpOwoJZWNobyAnPC9wcmU+JzsKfQoKZnVuY3Rpb24gdXBkYXRlX2Jhc2UgKCRjb25uZWN0LCAkZGF0YSwgJHRhYmxlLCAkb3BlcmF0aW9uKSB7CgoJJGNvbHNfbmVlZD1hcnJheSgnRXh0cmEnKTsKCSR0YWJsZV9kYXRhPSBzaG93X2NvbCAoJGNvbm5lY3QsICRjb2xzX25lZWQsICR0YWJsZSk7IC8vINC/0L7Qu9GD0YfQuNC70Lgg0LLRgdC1INC/0L7Qu9GPINGC0LDQsdC70LjRhtGLCgkKCSRjb2xfa2V5cz1hcnJheV9rZXlzKCR0YWJsZV9kYXRhWydjb2x1bW5zJ10pOyAvLyDQv9C+0LvRg9GH0LjQu9C4INC60LvRjtGH0Lgg0L/QvtC70LXQuQoKCSRrZXlzPSIiOwoJJHZhbHVlcz0iIjsKCSRwYWlycz0iIjsKCQoJCQlmb3JlYWNoICgkZGF0YSBhcyAka2V5ID0+ICR2YWx1ZSl7CgkJCQkvL9C/0YDQvtCy0LXRgNGP0LXQvCDQtdGB0YLRjCDQu9C4INGC0LDQutC+0LUg0L/QvtC70LUg0LIg0YLQsNCx0LvQuNGG0LUKCQkJCWlmIChpbl9hcnJheSgka2V5LCRjb2xfa2V5cykpeyAKCQkJCQkKCQkJCQkvL9C/0YDQvtCy0LXRgNGP0LXQvCDQvdCwIGF1dG9faW5jcmVtZW50CgkJCQkJCgkJCQkJaWYgKCRrZXk9PSJ1aWQiIG9yICRrZXk9PSJpZCIgKSB7CgkJCQkJCS8v0LTQu9GPIHVwZGF0ZQoJCQkJCQlpZiAoJG9wZXJhdGlvbj09J3VwZGF0ZScpIHsKCQkJCQkJCSR3aGVyZV91cGRhdGU9ImAiLiRrZXkuImAgPSAiLiR2YWx1ZTsKCQkJCQkJfSBlbHNlIHsgLy/QtdGB0LvQuCBhZGQg0LjQu9C4IGRlbGV0ZQoJCQkJCQkJaWYgKCR0YWJsZV9kYXRhWydjb2x1bW5zJ11bJGtleV1bJ0V4dHJhJ109PSdhdXRvX2luY3JlbWVudCcpIHsKCQkJCQkJCQkkdmFsdWU9IiI7CQoJCQkJCQkJfSBlbHNlIHsKCQkJCQkJCQkvL9C40YnQtdC8INC80LDQutGB0LjQvNCw0LvRjNC90YvQuSB1aWQg0LIg0LHQsNC30LUKCQkJCQkJCQkkcT0iU0VMRUNUIG1heCgiLiRrZXkuIikgRlJPTSAiLiR0YWJsZTsKCQkJCQkJCQkkcmVzPW15c3FsaV9mZXRjaF9yb3cobXlzcWxpX3F1ZXJ5KCRjb25uZWN0LCRxKSk7CgkJCQkJCQkJLy/Qv9GA0LjRgdCy0LDQuNCy0LDQtdC8INGB0LvQtdC00YPRjtGJ0LjQuQoJCQkJCQkJCSR2YWx1ZT0kcmVzWzBdKzE7CgkJCQkJCQkJCgkJCQkJCQl9CgkJCQkJCX0KCQkJCQl9CgkJCQkJCgkJCQkJLy/QtNC70Y8g0YPQtNCw0LvQtdC90LjRjwoJCQkJCSRuZWVkX2RlbGV0ZT1pbXBsb2RlKCRkYXRhKTsgIC8v0L/QvtC70YPRh9Cw0LXQvCDQvNCw0YHRgdC40LIgaWQKCQkJCQkkd2hlcmVfZGVsZXRlPSJgIi4ka2V5LiJgIElOICgiLiRuZWVkX2RlbGV0ZS4iKSI7CgkJCQkJCgkJCQkKCQkJCQkka2V5cy49ImAiLiRrZXkuImAsICI7CQoJCQkJCSR2YWx1ZXMuPSInIi4kdmFsdWUuIicsICI7CQoJCQkJCSRwYWlycy49ImAiLiRrZXkuImA9Ii4iJyIuJHZhbHVlLiInLCAiOwoJCQkJfQoJCQl9CgoKCQkka2V5cz0gc3Vic3RyKCRrZXlzLCAwLCBzdHJsZW4oJGtleXMpIC0gMik7IC8v0YPQtNCw0LvRj9C10Lwg0YXQstC+0YHRgtGLCgkJJHZhbHVlcz0gc3Vic3RyKCR2YWx1ZXMsIDAsIHN0cmxlbigkdmFsdWVzKSAtIDIpOwoJCSRwYWlycz0gc3Vic3RyKCRwYWlycywgMCwgc3RybGVuKCRwYWlycykgLSAyKTsKCgpzd2l0Y2ggKCRvcGVyYXRpb24pIHsKCQljYXNlICdhZGQnOgoJCSRxdWVyeT0iSU5TRVJUIElOVE8gIi4kdGFibGUuIiAoIi4ka2V5cy4iKSBWQUxVRVMgKCIuJHZhbHVlcy4iKSI7CgkJYnJlYWs7CgoJCWNhc2UgJ3VwZGF0ZSc6CgkJJHF1ZXJ5PSJVUERBVEUgIi4kdGFibGUuIiBTRVQgIi4kcGFpcnMuIiBXSEVSRSAiLiR3aGVyZV91cGRhdGU7CgkJYnJlYWs7CQoJCgkJY2FzZSAnZGVsZXRlJzoKCQkkcXVlcnk9IkRFTEVURSBGUk9NICIuJHRhYmxlLiIgV0hFUkUgIi4kd2hlcmVfZGVsZXRlOwoJCWJyZWFrOwp9CgplY2hvICc8YnI+Jy4kcXVlcnk7Ci8vJHJlcyA9IG15c3FsaV9xdWVyeSgkY29ubmVjdCwgJHF1ZXJ5KTsKCmlmICgkcmVzKSB7CgllY2hvICfQl9Cw0L/RgNC+0YEg0LLRi9C/0L7Qu9C90LXQvSDRg9GB0L/QtdGI0L3Qvic7Cn0gZWxzZSB7CgllY2hvICfQl9Cw0L/RgNC+0YEg0L3QtSDQstGL0L/QvtC70L3QtdC9IC0g0L/RgNC+0LLQtdGA0YzRgtC1INC60L7QtDogJy5teXNxbGlfZXJyb3IoJGNvbm5lY3QpOwp9CgoKfSAvL9C60L7QvdC10YYg0YTRg9C90LrRhtC40LgKCgoKJGRhdGE9YXJyYXkoJ2lkJz0+JzcnLCAnY2l0eSc9PifQmNCy0LDQvdC+0LLQvicpOyAvL9C80LDRgdGB0LjQsiDQtNCw0L3QvdGL0YUsINC/0L7Qu9GD0YfQsNC10LzRi9C5INC40Lcg0YTQvtGA0LwKJHRhYmxlPSdjaXRpZXMyJzsgLy/RgtCw0LHQu9C40YbQsAokb3BlcmF0aW9uPSd1cGRhdGUnOyAvL9GC0LjQvyDQvtC/0LXRgNCw0YbQuNC4Cgp1cGRhdGVfYmFzZSAoJGNvbm5lY3QsICRkYXRhLCAkdGFibGUsICRvcGVyYXRpb24pOw==