mysqli的预定义常量有什么作用,可能大家比较抽象,下面以一个简单的例子来说明。
该示例从数据库表accounts提取数据,根据不同的字段类型,调用不同的函数进行转换。如,整数类型就调用intval( )函数;小数类型就调用floatval( )函数;时间类型就调用DateTime( )函数。
该示例用到的mysqli的预定义常量如下:
MYSQLI_TYPE_TINY
MYSQLI_TYPE_SHORT
MYSQLI_TYPE_LONG
MYSQLI_TYPE_LONGLONG
MYSQLI_TYPE_INT24
MYSQLI_TYPE_FLOAT
MYSQLI_TYPE_DOUBLE
MYSQLI_TYPE_TIMESTAMP
MYSQLI_TYPE_DATE
MYSQLI_TYPE_DATETIME
参考如下示例:
$result = $mysqli->query('SELECT * FROM `accounts`');
$fields = $result->fetch_fields();
while ( $row = $result->fetch_row() )
{
foreach ( $row as $key => &$value )
{
switch ( $fields[$key]->type )
{
// Convert INT to an integer.
case MYSQLI_TYPE_TINY:
case MYSQLI_TYPE_SHORT:
case MYSQLI_TYPE_LONG:
case MYSQLI_TYPE_LONGLONG:
case MYSQLI_TYPE_INT24:
$value = intval($value);
break;
// Convert FLOAT to a float.
case MYSQLI_TYPE_FLOAT:
case MYSQLI_TYPE_DOUBLE:
$value = floatval($value);
break;
// Convert TIMESTAMP to a DateTime object.
case MYSQLI_TYPE_TIMESTAMP:
case MYSQLI_TYPE_DATE:
case MYSQLI_TYPE_DATETIME:
$value = new DateTime($value);
break;
}
}
var_dump($row);
}
浙公网安备 33010602011771号