У меня есть 2 таблицы для моих статей в БД:
tags
Структура таблицы и текущее состояние:
первичный ключ для моего tags
стол tag
колонка.
tag | post_ids | count |
-------------------------------------
a | 2,0 | |
b | 1,2,0,0 | |
tag1 | 1,2,0,0 | |
j | 2,0 | |
Я хочу обновить count
колонка после любой вставки (новый пост) или ОБНОВЛЕНИЕ (существующий пост) действие, и я хочу сделать это с подготовленными заявлениями.
В настоящее время я могу динамически построить вход: $array = array("2","4","4","2")
что связанные значения count
столбец для обновления.
И с кодом ниже; Я пытался обновить count
столбец однако всегда обновляется со значением = 2 для всех count
строк.
count
грести $array[0]
2-й count
грести $array[1]
… Так что я должен использовать LIMIT
, OFFSET
аргументыЯ хочу исправить свой код и узнать, почему он не работает?
Можете ли вы помочь?
С наилучшими пожеланиями
МОЙ КОД
$query = "UPDATE tags SET count = ?
WHERE tag IN(SELECT tag FROM (SELECT tag FROM tags LIMIT ?,1) as u)";
$stmt = $mysqli->prepare($query);
if($stmt === false)
{
trigger_error('SQL Error: ' . $mysqli->error, E_USER_ERROR);
}
$stmt->bind_param("ii", $count, $i);
$i = 0;
foreach ($array as $a) // $array: related values of the `count` column to be updated
{
$count = intval($a);
$stmt->execute();
$i = $i + 1;
}
$stmt->close();
Задача ещё не решена.
Других решений пока нет …