Fetching MySQL Query Results in Native Data Type
When using MySQL in PHP, retrieving query results through functions like mysql_fetch_row() and mysql_result() typically renders numeric values as strings. This may not always be ideal, especially if you need to work with the data in its original format.
In PHP 5.2, retrieving data in its native datatype is not straightforward. However, PHP 5.3 introduces the mysqlnd driver, which brings about the capability of returning native data types when using server-side prepared statements. This means that INT columns will be returned as integers, rather than strings.
For example, when using mysqlnd with prepared statements, the following code will return the id column as an integer:
<code class="php">$stmt = $conn->prepare("SELECT id FROM table_name WHERE name = ?"); $stmt->execute(array($name)); $row = $stmt->fetch(PDO::FETCH_ASSOC); $id = $row['id'];</code>
If you are unable to use prepared statements or are working with PHP versions prior to 5.3, you may consider using a custom mapping system or Object-Relational Mapping (ORM) tool to convert database results to PHP datatypes. However, this approach may introduce limitations when using type-sensitive operators like === and !==.
The above is the detailed content of How to Fetch MySQL Query Results in Their Native Data Types in PHP?. For more information, please follow other related articles on the PHP Chinese website!