PHP将int转换为字符串

时间:2012-07-04 14:58:52

标签: php sqlite

我正在尝试很好地解析我的if-else语句,但似乎它没有解析else语句。

$a = 1
if (is_numeric($a)) 
{
    $DB = new PDO('sqlite:database.db');
    $result = $DB->query('select id from staff where id='.$a);
        if ($result == "")
        {
        echo "'{$a}' is invalid. No such record", PHP_EOL;
        }
        else
        {
            echo "'{$a}' is found", PHP_EOL; 
        }

} 
else 
{
    echo "'{$a}' is NOT numeric", PHP_EOL;
}

我的$ result我认为它会在Integer中返回,因为当我说回显$ result时,它说PDO语句不能转换为INT。 它不是我的第一个内在的声明。请告诉我如何犯错误。

由于

1 个答案:

答案 0 :(得分:2)

您的$result是一个对象,而不是整数。您需要调用fetch方法,例如fetchAll,甚至更简单的fetch来将数据放入另一个变量。

尝试:

$a = 1
if (is_numeric($a)) 
{
    $DB = new PDO('sqlite:database.db');
    $result = $DB->query('select id from staff where id='.$a);
        if ($result)
        {
            $data = $result->fetchAll(PDO::FETCH_NUM);
            if (!isset($data[0]))
                echo "'{$a}' is invalid. No such record", PHP_EOL;
            else
                echo "'{$a}' is found", PHP_EOL; 
        }    
} 
else 
{
    echo "'{$a}' is NOT numeric", PHP_EOL;
}

这是fetch的另一个例子:

$a = 1
if (is_numeric($a)) 
{
    $DB = new PDO('sqlite:database.db');
    $result = $DB->query('select id from staff where id='.$a);
        if ($result)
        {
            $data = $result->fetch(PDO::FETCH_ASSOC);
            if (!$data)
                echo "'{$a}' is invalid. No such record", PHP_EOL;
            else
                echo "'{$a}' is found", PHP_EOL; 
        }    
} 
else 
{
    echo "'{$a}' is NOT numeric", PHP_EOL;
}