नीचे दिया गया कोड केवल अवधारणा का प्रमाण है। इसे उत्पादन में उपयोग करने से पहले फ़ंक्शन/विधि और कुछ पॉलिशिंग में encapsulation की जरूरत है (f.e. mysqli_fetch_field()
पर कॉल करें लूप में और किसी भी पंक्ति को संसाधित करने से पहले लौटाए गए ऑब्जेक्ट को स्टोर करें, प्रत्येक पंक्ति के लिए एक बार नहीं)।
यह फ़ंक्शन का उपयोग करता है mysqli_fetch_field()
परिणाम सेट के प्रत्येक कॉलम के बारे में जानकारी प्राप्त करने के लिए और उन कॉलम को संख्याओं में कनवर्ट करता है जिनमें संख्यात्मक प्रकार होते हैं। MYSQLI_TYPE_*
के मान
स्थिरांक Mysqli पूर्वनिर्धारित स्थिरांक
के दस्तावेज़ीकरण पृष्ठ में पाए जा सकते हैं ।
// Get the data
$result = mysqli_query($db, "SELECT * FROM table WHERE id=1");
$row = mysqli_fetch_assoc($result);
// Fix the types
$fixed = array();
foreach ($row as $key => $value) {
$info = mysqli_fetch_field($result);
if (in_array($info->type, array(
MYSQLI_TYPE_TINY, MYSQLI_TYPE_SHORT, MYSQLI_TYPE_INT24,
MYSQLI_TYPE_LONG, MYSQLI_TYPE_LONGLONG,
MYSQLI_TYPE_DECIMAL,
MYSQLI_TYPE_FLOAT, MYSQLI_TYPE_DOUBLE
))) {
$fixed[$key] = 0 + $value;
} else {
$fixed[$key] = $value;
}
}
// Compare the results
echo('all strings: '.json_encode($row)."\n");
echo('fixed types: '.json_encode($fixed)."\n");