Faturamento de uma única linha, coluna única com DOP

Eu tenho uma consulta mysql que visa uma única coluna em uma única linha

"SELECT some_col_name FROM table_name WHERE user=:user" 

Depois de executar a declaração $stmt->execute(); Como faço para que esta única célula seja colocada diretamente em uma variável sem loops? Em outras palavras, como obter

 from $stmt->execute(); to $col_value = 100; 

Eu tentei o 2 abaixo, mas não trabalhou … A coluna é o número 4 na tabela original, mas eu suponho que, na minha declaração seletiva, eu estou selecionando apenas, deve ser 1 quando eu especificar o parâmetro para fetchColumn.

 $col_value = $stmt->fetchColumn(); $col_value = $stmt->fetchColumn(0); 

Como você pode ver, estou tentando fazê-lo em poucas linhas possível.

Tem certeza de que está retornando alguma linha?
$stmt->fetchColumn()
é a maneira correta de buscar um único valor, então você provavelmente não vinculou o parâmetro: usuário ou simplesmente não retornou nenhuma linha.

 $sql='SELECT some_col_name FROM table_name WHERE user=?'; $sth=$pdo_dbh->prepare($sql); $data=array($user); $sth->execute($data); $result=$sth->fetchColumn(); 

Eu não tenho certeza por que tantas pessoas perdoam isso:

 $stmt = $dbh->prepare("SELECT `column` FROM `table` WHERE `where`=:where"); $stmt->bindValue(':where', $MyWhere); $stmt->execute(); $SingleVar = $stmt->fetchColumn(); 

Verifique se você está selecionando uma column específica na consulta e não * ou precisará especificar o número da ordem da coluna em fetchColumn() , exemplo: $stmt->fetchColumn(2); Isso geralmente não é uma boa idéia porque as colunas no database podem ser reorganizadas por alguém …

Isso só funciona corretamente com unique 'wheres' ; fetchColumn() não retornará uma matriz.

Você preparou a declaração primeiro? (Antes de $stmt->execute() )

 $stmt = $db->prepare("SELECT some_col_name FROM table_name WHERE user=:user"); 

Você poderia usar isso:

 $stmt->fetch(PDO::FETCH_COLUMN, $number_of_column);