我正在尝试很好地解析我的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。 它不是我的第一个内在的声明。请告诉我如何犯错误。
由于
答案 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;
}