Значения php mysqli возвращают биты и целые числа в виде строки - PullRequest
1 голос
/ 24 февраля 2012

У меня есть проект, выполненный на flex, использующий службы данных php для доступа к базе данных сервера sql, и мне нужно преобразовать его в mysql, я изменил все свои службы php с sqlsrv на mysqli.
Примерно так:

$this->connection = mysqli_connect(SERVER,USERNAME,PASSWORD,DATABASE); // Start Connection
$ssqlstring = "select * from Users";
$runssql = mysqli_query($this->connection, $ssqlstring);
while($user = mysqli_fetch_array($runssql)) 
{
  $users[$user["ID"]] = $user;
}
return $users;

он отлично работал на sqlsrv, но с помощью mysqli он возвращает значения INT, BIT или DATE как string

основные типы данных в MySQL: INT, VARCHAR, BIT(1), DATETIME, DATE (так же, как sqlsrv)
, а на flex типы возврата в основном: object[]

1 Ответ

3 голосов
/ 24 февраля 2012

из руководства

Возвращает массив строк , который соответствует выбранной строке или NULL, если в наборе результатов больше нет строк.

В PHP относительно немного нативных типов, короче говоря, возможны INT, FLOAT и STRING (где STRING является значением по умолчанию для всех остальных, таких как BIT и DATE и т. Д.).PDO немного лучше при использовании более близких к фактическим типам, но по-прежнему намного больше по умолчанию для строк.В mysqli вы можете использовать mysqli_result_fetch_fields, чтобы получить тип возвращаемого поля и привести его к желаемому формату, см. Также MYSQLI_TYPE_* константы .

...