У меня есть таблица в mysql:
CREATE TABLE user (id INT, name VARCHAR(250));
Я запрашиваю таблицу:
$result = mysql_query("SELECT id,name FROM user");
Я собираю результаты:
while($row = mysql_fetch_assoc($result) $rv[] = $row;
И я возвращаю данные:
echo json_encode($rv);
Проблема состоит в том, что идентификатор возвращается как строка и не интервал, даже перед json_encode. Если я вызываю $row ['идентификатор'] = (международный) $row ['идентификатор']; - это хорошо работает.
Как я могу вынудить mysql возвратить правильный тип данных в $row?
10x.
В документах указано, что только статические экземпляры StandardAnalyzer безопасны для потоков. QuureParser совпадает.
-121--5085943->>> import re
>>> re.match("[a-zA-Z][\w-]*$","A")
<_sre.SRE_Match object at 0x00932E20>
>>> re.match("[a-zA-Z][\w-]*$","A_B")
<_sre.SRE_Match object at 0x008CA950>
>>> re.match("[a-zA-Z][\w-]*$","0A")
>>>
>>> re.match("[a-zA-Z][\w-]*$","!A_B")
>>>
Примечание : упомянутая OP последовательностей не может начинаться с (0-9 и "_").
, очевидно _ может быть в тексте. Вот почему я использую \w
Note2 : Если вы не хотите совпадать окончания строки с \n
, вы можете использовать \Z
вместо $
как Джон
PDO- > bindColumn может ли этот
$stmt = $dbh->prepare($sql);
$stmt->bindColumn('int_col', $intVar, PDO::PARAM_INT);
$stmt->bindColumn('string_col', $strVar, PDO::PARAM_STR);
$stmt->execute();
$stmt->fetch(PDO::FETCH_BOUND);
$ intVar быть автоматически преобразован в int
К сожалению, с PHP <= 5.2 функции / классы MySQL (т.е. mysql _ *
, mysqli _ *
и PDO
) основаны на libmysql - библиотеке C, которая обеспечивает поддержку связи с сервером MySQL.
Функции, использующие эту библиотеку, всегда возвращают строки, даже для целочисленных столбцов и столбцов с плавающей запятой - и вы ничего не можете с этим поделать: единственное решение - иметь некоторый «слой отображения» (например, ORM) , который на стороне PHP «знает», какого типа должен быть каждый столбец, и будет выполнять преобразование каждый раз, когда какие-то данные извлекаются из базы данных.
Примечание: способ вставки данных ничего не меняет в отношении того факта, что вы получаете строки при извлечении данных из БД.
С PHP> = 5.3 функции, которые взаимодействуют с сервером MySQL, могут использовать mysqlnd (собственный драйвер MySQL) вместо libmysql - однако это должно быть настроено во время компиляции.
И возможность взаимодействовать с «родными» типами данных при определенных обстоятельствах - одна из приятных вещей, которые предоставляет mysqlnd; об этом должна быть пара интересных сведений в этой статье: PHP: новый сетевой трафик, экономия ресурсов ЦП и памяти с помощью mysqlnd .
Для краткости: