我对PHP非常陌生。我有一个函数应该返回包含单列1或0的单条记录:
function is_pitcher($player_id) {
global $db;
$query = 'SELECT IF (position = 1, 1, 0) AS is_pitcher FROM players WHERE player_id = :player_id';
$statement = $db->prepare($query);
$statement->bindValue(':player_id', $player_id);
$statement->execute();
$is_pitcher = $statement->fetchAll();
$statement->closeCursor();
return $is_pitcher;
在控制页上,我有一条IF
语句,它对$is_pitcher
的值1和0进行求值:
if ($action == 'get_player') {
$player_id = filter_input(INPUT_GET, 'player_id');
$is_pitcher = is_pitcher($player_id);
if ($is_pitcher == 1) {...
使用echo $is_pitcher
测试该值表明它是一个数组,因此无法以这种方式求值。我已经尝试使用fetch()
和fetchAll()
来获得相同结果的功能。
我可以使用$is_pitcher
获得echo $is_pitcher['is_pitcher']
的值,但是在控制页上这样做会破坏它。
有没有一种方法可以编写不返回数组的函数?还是有办法将变量作为数组求值?
ETA:为回应评论,这是数组的结构:
array ( 0 => array ( 'is_pitcher' => '0', 0 => '0', ), )
答案 0 :(得分:1)
来自https://www.php.net/manual/en/pdostatement.fetchall.php
PDOStatement::fetchAll — Returns an array containing all of the result set rows
因此,是的,即使有一个结果,它也应该是一个数组。