Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   как в Mysql через PDO обновить данные если поле json (https://javascript.ru/forum/server/75989-kak-v-mysql-cherez-pdo-obnovit-dannye-esli-pole-json.html)

Sergey1986 22.11.2018 19:04

как в Mysql через PDO обновить данные если поле json
 
Всем доброго, что то не могу понять как обновить данные в поле json
есть

$this->db = new PDO('mysql:host='.$config['host'].';dbname='.$config['name'].'', $config['user'], $config['password']);

public function query ($sql, $params = []){
$stmt = $this->db->prepare($sql);
if (!empty($params)){
foreach ($params as $key => $val){
if(is_int($val)){
$type = PDO::PARAM_INT;
} else {
$type = PDO::PARAM_STR;
}
// echo '<p>'.$key.' => '.$val.'</p>';
$stmt->bindValue(':'.$key, $val, $type);
}
}
//exit;
$stmt->execute();
return $stmt;
}

а вот само обращение (КАК ПРАВИЛЬНО СДЕЛАТЬ ЗАПРОС!!!!??????)

public function settingsUpdate ($post) {

$params = [
'login' => $post['log'],
'pass' => $post['pas'],

];

$this->db->query('UPDATE
table
SET colomn= REPLACE("login":"123", "pass":"321")
WHERE id = 1', $params);
}

Заранее спасибо!

laimas 22.11.2018 20:03

А кто вас надоумил такие данные так хранить? И пароли в базе никогда не хранят в открытом виде.

Sergey1986 23.11.2018 12:30

это как пример используется)))

Sergey1986 23.11.2018 12:30

но забегаю вперед разобрался!

laimas 23.11.2018 13:01

Цитата:

Сообщение от Sergey1986
это как пример используется

Таких задач вообще не должно возникать и это пример необдуманной организации данных в базе. Либо думаете над ней, либо выбираете иной тип базы.

Sergey1986 23.11.2018 14:56

Дайте совет тогда)!
есть смс провайдеры у каждого есть свой api( у кого то 2 параметра, у кого 3 и т.д. и с разными названиями парметров.) так вот как бы сделать так что бы пользователь мог выбрать себе провайдера (со своим набором настроек (вот они то как раз в json) необходимого и внес свои настоечные данные в систему и все бы заработало!

архитектура интересует?)

Sergey1986 23.11.2018 14:57

как бы вы сделали?

SuperZen 23.11.2018 15:17

В MySql есть тип данных JSON (https://dev.mysql.com/doc/refman/8.0...functions.html) - если хочется прям JSON и чтобы было можно было DML в стиле SQL )

laimas 23.11.2018 15:35

Цитата:

Сообщение от Sergey1986
как бы вы сделали?

На данный вопрос отвечает назначение данных. Как можно прятать логин, по которому не однократно будет выборка в базе, в строку?


Часовой пояс GMT +3, время: 06:17.