Как внести изменение в ячейку БД?

Помогите разобраться как правильно написать код? Есть переменная id предположим имеет значение 11-2 , в базе данных три колонки с названием count1, count2, count3.
Необходимо в базе в строке 11 в колонке count2 прочитать значение и прибавить значение переменной count.
function change(){
    $conn = connect();
    $data = $_POST ['getdata'];
    $stmt = $conn->prepare("UPDATE `sortlist` SET `count$id[1]` ='count$id[1]' + ? WHERE `id`= ? ;");
    $stmt->bind_param('is', $count, $id[0]);//Привязка параметров integer,string
    foreach ($data as $value) {
        $id = $value["id"];        
        $id=explode("-", $id);
        $count = $value["count"];
        $stmt->execute();
    }
  • Вопрос задан
  • 83 просмотра
Решения вопроса 1
rozhnev
@rozhnev Куратор тега PHP
Fullstack programmer, DBA, медленно, дорого
Использование динамических запросов может привести к нарушению безопасности, поэтому я могу посоветовать следующий подход к этой проблеме:
$stmt = $conn->prepare(
	"UPDATE `sortlist` 
	SET 
		`count1` ='count1' + ? ,
		`count2` ='count2' + ? ,
		`count3` ='count3' + ? 
	WHERE `id`= ? ;"
);
$stmt->bind_param('iiis', $count1, $count2, $count3, $row);

foreach ($data as $value) {
	list($row, $col) = explode("-", $value['id']);
	
	$count1 = 0;
	$count2 = 0;
	$count3 = 0;
	
	$column = "count" . intval($col); 
	$$column = $value["count"];
	
	echo "$count1, $count2, $count3, $row";
	
	$stmt->execute();
}


Share PHP code online
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы