Подтвердить что ты не робот

Как получить целое число от MySQL как целое в PHP?

Когда данные возвращаются из MySQL, они автоматически возвращаются в виде строк, независимо от типа данных MySQL.

Есть ли способ сказать MySQL/PHP для поддержки типов данных (например, int), поэтому, если вы запрашиваете столбец int, вы получаете целое число в PHP вместо строки?

4b9b3361

Ответ 1

Ну, вы можете сделать Type casting, чтобы преобразовать тип возвращаемых данных с помощью PHP.

Вы можете посмотреть int, intval для преобразования в целые числа. Вы также можете использовать settype:

settype($foo, "array");
settype($foo, "bool");
settype($foo, "boolean");
settype($foo, "float");
settype($foo, "int");
settype($foo, "integer");
settype($foo, "null");
settype($foo, "object");
settype($foo, "string");

Другой способ:

$foo = (array)$foo;
$foo = (b)$foo;      // from PHP 5.2.1
$foo = (binary)$foo; // from PHP 5.2.1
$foo = (bool)$foo;
$foo = (boolean)$foo;
$foo = (double)$foo;
$foo = (float)$foo;
$foo = (int)$foo;
$foo = (integer)$foo;
$foo = (object)$foo;
$foo = (real)$foo;
$foo = (string)$foo;

Ответ 2

В MySQLi используйте bind_result: он устанавливает правильный тип и обрабатывает NULL.

Ответ 3

Если вы используете Ubuntu:

sudo  apt-get remove php5-mysql
sudo  apt-get install php5-mysqlnd
sudo service apache2 restart

Ответ 4

Вы можете использовать литье типов после того, как вы вытащили данные из базы данных MySQL.

$row['field'] = (int)$row['field'];

Ответ 5

Поскольку PHP не является строго типизированным языком, это несколько бессмысленно, но вы, конечно, можете просто передать рассматриваемое поле в int через settype и т.д. до использования.

Независимо от того, что я знаю, нет способа сохранить эту "типную" информацию автоматически.

Ответ 6

PHP-библиотека по умолчанию для MySQL не имеет таких параметров. Использовать тип литья (int) или intval, (float) и т.д.

Ответ 7

в php, вы можете использовать ([type]), чтобы удостовериться, что $something было целым, эта помощь SQL-инъекции, если вы об этом знаете.

Пример:

(int) $something;

Ответ 8

Я не знаю, в каком контексте вы задали этот вопрос. Поскольку тип данных переменной php зависит от того, какой тип данных имеет столбец в вашей таблице. Если столбец имеет тип данных "int" в mysql, вы получаете целое число в php (не строку).

Но в любом случае вы можете использовать функции is_numeric(), is_int() или gettype() php, чтобы узнать тип данных возвращаемого значения из Mysql. Проблема с is_numeric() заключается в том, что она возвращает true, даже если переменная содержит числовую строку, например. "2". Но gettype() вернет "string", а is_int() всегда вернет false в примере, указанном i.e. "2".

Как только вы узнаете тип данных возвращаемого значения, вы можете привязать переменную php для поддержки такого типа, как:

// Suppose this is the returned value from mysql and
// you do not know its data type.
$foo = "2";

if (gettype($foo) == "string"){
    $foo = (string) $foo;
}

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

Я надеюсь, что этот ответ будет полезен. Удачи!:)

Ответ 9

Если вы хотите получить значения, упорядочивающие по цене, вы можете изменить Тип данных для FLOAT из столбца (например: цена)

EX:

ТАБЛИЦА ЭЛЕКТРОНИКИ

price        id
----------------
55.90        1
40.33        2
10.60        3
1596.90      4
56.90        5

PHP:

$sql = $pdo->query("SELECT * FROM eletronics ORDER BY price DESC");

//результат

1596.90      4
56.90        5
55.90        1
40.33        2
10.60        3

//Порядок за цены //OBS: вы можете изменить точки с помощью "," используя результат str_replace()//: 1596,90 - 56,90 - 55,90 - 40,33 - 10,60 и т.д.