当结果不应为数组时,PHP函数返回数组
我对PHP非常陌生。我有一个函数,它应该返回一条记录,其中包含一列1或0:当结果不应为数组时,PHP函数返回数组,php,mysql,Php,Mysql,我对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->bindV
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
语句,它对值1和0计算$is\u pitcher
:
if ($action == 'get_player') {
$player_id = filter_input(INPUT_GET, 'player_id');
$is_pitcher = is_pitcher($player_id);
if ($is_pitcher == 1) {...
使用echo$is\u pitcher
测试该值表明它是一个数组,因此不能以这种方式进行计算。我用fetch()
和fetchAll()
两种方法尝试了该函数,结果相同
我可以使用echo$is\u pitcher['is\u pitcher']
获取$is\u pitcher
的值,但是在控制页面上这样做会破坏它
有没有办法编写不返回数组的函数?或者,有没有办法将变量作为数组进行求值
ETA:作为对评论的回答,以下是阵列的结构:
array ( 0 => array ( 'is_pitcher' => '0', 0 => '0', ), )
从
PDOStatement::fetchAll-返回包含所有结果集行的数组
因此,是的,它应该是一个数组,即使只有一个结果。你能在
$is\u pitcher
中向我们展示数组的结构吗,使用var\u export($is\u pitcher)
fetchAll
总是返回一个数组(数组的长度可以是1),试试$is_-pitcher[0]
你可以引用$is_-pitcher[0]['is_-pitcher']]]
-也就是说,如果($is_-pitcher[0]['is_-pitcher']==1){…
一个简单的变量转储或打印会节省很多时间