1

そのような方法でMySQLIで配列をフェッチしながら

$sql = <<<SQL
    SELECT *
    FROM `users`
    WHERE `live` = 1 
SQL;

if(!$result = $db->query($sql)){
    die('There was an error running the query [' . $db->error . ']');
}

while($row = $result->fetch_assoc()){
    echo var_dump($row);
}

すべての値が type である連想配列を取得しますstring

列の型 (VARCHAR、DATETIME、INT、FLOAT) を検出し、適切な型 (文字列、整数、null) で連想配列を埋める (または一意の連想配列を作成する) 最も洗練された方法はどれですか?

json_encodeこれは、さらにクライアント側で処理するために結果 dを返すときに非常に便利です。

助けてくれてどうもありがとう

4

2 に答える 2

3

まず第一に、あなたは間違った質問をしています。
実際には列タイプは必要ありません。実際のところ、単純な PHP 条件を使用して、数値から文字列を判別することができます。しかし、どちらのメソッドもNULLを教えてくれません。

これを試して

$sql = "SELECT * FROM users WHERE live = 1";
$stm = $db->prepare($sql) or trigger_error($db->error);
$stm->execute() or trigger_error($db->error);
$res = $stm->get_result();
$row = mysqli_fetch_assoc($res);

運が良ければ全種類揃う。
そうでない場合 - PHP で mysqlnd を有効にする必要があります

于 2013-05-10T05:03:13.707 に答える
0

次のように、information_schema.columns テーブルをクエリします。

SELECT DATA_TYPE FROM information_schema.COLUMNS WHERE TABLE_NAME = 'tbl1' AND COLUMN_NAME = 'keycol'

テーブルが tbl1 で、問題の列が keycol であると仮定します。しかし、json_encodeはおそらくあなたの生活を楽にし、おそらく無限に楽にしてくれると思います。

于 2013-05-10T04:23:14.713 に答える