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

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

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

Ну, вы можете сделать 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; 

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

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

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

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

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

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

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

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

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

например:

 (int) $something; 

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

Но в любом случае вы можете использовать либо is_numeric (), is_int (), либо gettype () php-функции, чтобы узнать тип данных возвращаемого значения из Mysql. Проблема с is_numeric () заключается в том, что она возвращает true, даже если переменная содержит числовую строку, например «2». Но gettype () вернет «string», а is_int () всегда вернет false в примере, указанном, например, «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; } 

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

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

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

EX:

ТАБЛИЦА eletronics

 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 и т. Д. ,