0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[PHP] mysqliでデータをSELECTした際に数値型がすべて文字列になってしまう件

Posted at

やりたかったこと

phpから、mysqliでもってSQL実行し取得したときに、データベースでINT型またはFLOAT型になっているのにすべてSTRING型になってしまうので、数値のものは数値として取得したい。なぜかと言うと、最終的にjavascriptに持ってきてid順とかで並べ替えたりするときに、1と2と10が文字列だと1→10→2と並んでしまったりする。いちいちparseIntしなければならない。

最終的なコード(PHP)


// SQL実行
$result = $this->mysqli->query($sql); //何かしらSELECTしてくる

// 連想配列に格納
$data = array(); //格納先
while ($row = $result->fetch_assoc()) { //一行ずつ配列で取得して$dataに入れていく。これはよくある手法

    // --- ここから数値変換処理 ---
    foreach ( $row as $key => &$value ) {
        if(is_numeric($value)) $value *= 1; //すべての要素に対して、数値であれば1を掛けることで自動で型変換してもらう(PHPの仕様)
    }
    unset($value); //誤作動防止
    // --- ここまで ---

    $data[] = $row;
}

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?