Как выбрать данные из SQL как INT, а не String?

0

У меня есть этот код:

$TargetPlayerPosition = $GLOBALS['DATABASE']->uniquequery("SELECT total_rank FROM ".STATPOINTS." WHERE 'id_owner' = '". $this->_fleet['fleet_target_owner'] ."';");

Проблема в том, что я не могу добавить +10 в $TargetPlayerPosition, потому что это строка. Но в БД total_rank является INT.

  • 0
    Почему вы не можете добавить в строку? PHP сделает конвертацию за вас, 3v4l.org/eS014 .
  • 0
    Вы уверены, что $TargetPlayerPosition является строкой, а не объектом результата?
Показать ещё 4 комментария
Теги:

2 ответа

0

Не знаете, как вы извлекаете значение из набора результатов после запроса. Как правило, вы должны получить целочисленное значение типа из поля, которое является целым числом в БД. Если нет, вы можете преобразовать значение в php.

 $v = (int)$v;
 // Or.
 $v = intval($v);

Вы можете использовать следующий запрос для динамического добавления номера при запросе:

"SELECT (total_rank+10) AS total_rank FROM ".STATPOINTS." WHERE ..."

Даже если поле типа string может выполнять следующие действия:

"SELECT (CONVERT(total_rank, SIGNED INTEGER)+10) AS total_rank FROM ".STATPOINTS." WHERE ..."
0
<?php 
$TargetPlayerPosition = $GLOBALS['DATABASE']->uniquequery("SELECT total_rank FROM ".STATPOINTS." WHERE 'id_owner' = '". $this->_fleet['fleet_target_owner'] ."';");
/* conversion to int */
$rank = (int) $TargetPlayerPosition;
/* do the required arithmetic */
/* $rank + 10 will work now */
?>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню