sql >> データベース >  >> RDS >> Mysql

PHP MySQLiは、ステートメントを準備し、列のサブセットをフェッチします

    bind_result()関数のこれらすべての変数を書きたくないと思います。 bind_result()関数の代わりに、以下のような関数を使用できます。 $ stmtオブジェクトを渡すと、必要なフィールドを持つ標準オブジェクトの配列が返されます。

    function getResult($stmt)
    {
        $valid_fields = array('title', 'date_created'); // enter field names you care about
    
        if (is_a($stmt, 'MySQLi_STMT')) {
            $result = array();
    
            $metadata = $stmt->result_metadata();
            $fields = $metadata->fetch_fields();
    
            for (; ;)
            {
                $pointers = array();
                $row = new \stdClass();
    
                $pointers[] = $stmt;
                foreach ($fields as $field)
                {
                    if (in_array($field->name, $valid_fields)) {
                        $fieldname = $field->name;
                        $pointers[] = &$row->$fieldname;
                    }
                }
    
                call_user_func_array('mysqli_stmt_bind_result', $pointers);
    
                if (!$stmt->fetch())
                    break;
    
                $result[] = $row;
            }
    
            $metadata->free();
    
            return $result;
        }
        return array();
    }
    


    1. 指定されたキーが辞書に存在しませんでした。 mysqlを使用

    2. Oracleデータベースの古さを確認しますか?

    3. 同じ値によるPHPJSONグループ化

    4. MySQLiを使用してデータベースにデータを挿入する