- Хроники
- Harbingers of War
- Сборка
- web
добренького. такая проблемка. делаю проверку на наличие предмета в базе по owner и item_id.
если проверка дает результат, должен выполниться запрос UPDATE, иначе же, если результаов нет, выполнить INSERT .
проблема в следующем: все работает, пака в базе 1 запись, как только появляется вторая запись с другим owner_id, запрос не делает insert, а пытается сделать update не существующей записи.
проверял в ручную запрос на вывод колличества строк, результат 0. мне непонятно это поведение, ведь условие составлено верно.
если проверка дает результат, должен выполниться запрос UPDATE, иначе же, если результаов нет, выполнить INSERT .
проблема в следующем: все работает, пака в базе 1 запись, как только появляется вторая запись с другим owner_id, запрос не делает insert, а пытается сделать update не существующей записи.
PHP:
public function AddItem($char_id, $item_id, $count, $enchant) {
$result = $this->game_db->select("SELECT count(*) as `count` FROM items WHERE owner_id = $char_id AND item_id = $item_id");
if ($result[0]['count'] > 0)
{
$link = mysqli_connect("IP", "Login", "Pass", "DBname");
if($link === false){
die("ERROR: Could not connect. "
. mysqli_connect_error());
}
$item_data = array(
'owner_id' => $char_id,
'item_id' => $item_id,
'count' => $count
);
$sql = "UPDATE items SET count = count + $count WHERE owner_id = $char_id AND item_id = $item_id";
if(mysqli_query($link, $sql))
{
mysqli_close($link);
}
} else {
$item_data = array(
'owner_id' => $char_id,
'item_id' => $item_id,
'count' => $count,
'enchant_level' => $enchant,
'loc' => 'INVENTORY'
);
$this->game_db->insert("items", $item_data);
}
}