PHP
<?php
/**
* @author Patrick Rennings
* @copyright 2010
*/
$iVar = 10;
$sVar = 'String';
var_dump ( $iVar );
var_dump ( $sVar );
mysql_connect ( 'localhost', 'root' );
mysql_select_db ( 'test' );
mysql_query ( ' INSERT INTO `test` (`integer`) VALUES ( ' . $iVar . ' ) ' );
if ( mysql_error ( ) ) { die ( mysql_error ( ) ); }
mysql_query ( ' INSERT INTO `test` (`string`) VALUES ( ' . $iVar . ' ) ' );
if ( mysql_error ( ) ) { die ( mysql_error ( ) ); }
$query = mysql_query ( ' SELECT * FROM `test ' );
while ( $row = mysql_fetch_assoc ( $query ) )
{
var_dump ( $row['integer'] );
if ( is_int ( $row['integer'] ) )
{
echo ' <br /> True. ';
}
if ( is_int ( $row['string'] ) )
{
echo ' <br /> True. ';
}
}
?>
Toon Meer
database row 'integer' staat op op INT en die van 'string' staat op VARCHAR.
Maar als ik het uit de database haal is het altijd een string, is er een mogelijheid om dit als een int uit de database te halen.
de var_dump( ) in de while returned dus een string() en dat moet dus een int() zijn.
EDIT:
Na uitzoeken kom ik erachter dat het altijd al zo geweest is maar nu heb ik het zo gedaan:
PHP
<?php
/**
* @author Patrick Rennings
* @copyright 2010
*/
$iVar = 10;
$sVar = 'String';
var_dump ( $iVar );
var_dump ( $sVar );
if ( is_int( $iVar ) )
{
echo ' <br /> True. ';
}
else
{
echo ' <br /> False. ';
}
if ( is_int ( $sVar ) )
{
echo ' <br /> True. ';
}
else
{
echo ' <br /> False. ';
}
mysql_connect ( 'localhost', 'root' );
mysql_select_db ( 'test' );
mysql_query ( ' INSERT INTO `test` (`integer`) VALUES ( ' . $iVar . ' ) ' );
if ( mysql_error ( ) ) { die ( mysql_error ( ) ); }
mysql_query ( ' INSERT INTO `test` (`string`) VALUES ( ' . $sVar . ' ) ' );
if ( mysql_error ( ) ) { die ( mysql_error ( ) ); }
$query = mysql_query ( ' SELECT * FROM `test ' );
while ( $row = mysql_fetch_assoc ( $query ) )
{
var_dump ( $row['integer'] );
echo ' <br /> <br /> ';
if ( ctype_digit ( $row['integer'] ) )
{
$iVar = $row['integer'];
settype ( $iVar, 'integer' );
var_dump ( $iVar );
}
if ( ctype_alpha ( $row['string'] ) )
{
$sVar = $row['string'];
settype ( $sVar, 'string' );
var_dump ( $sVar );
}
}
?>
Toon Meer
En nu returned hij alleen de int(10) die integer slaat hij volledig over...