registros fetchcolumn contar php pdo

fetchcolumn - rowcount php



PHP PDO devuelve una sola fila (7)

¿ limit 0,1 hay de usar el limit 0,1 para la optimización de MySQL?

y sobre tu código:

$DBH = new PDO( "connection string goes here" ); $STH - $DBH -> prepare( "select figure from table1" ); $STH -> execute(); $result = $STH ->fetch(PDO::FETCH_ASSOC) echo $result["figure"]; $DBH = null;

ACTUALIZACIÓN 2:

Entonces, ¿este es el más optimizado que puede obtener?

$DBH = new PDO( "connection string goes here" ); $STH = $DBH -> prepare( "select figure from table1" ); $STH -> execute(); $result = $STH -> fetch(); echo $result ["figure"]; $DBH = null;

ACTUALIZACIÓN 1:

Sé que puedo agregar límite a la consulta sql, pero también quiero deshacerme del bucle foreach, que no debería necesitar.

PREGUNTA ORIGINAL:

Tengo la siguiente secuencia de comandos que es buena IMO para devolver muchas filas de la base de datos debido a la sección "foreach".

Cómo optimizo esto, si sé que siempre obtendré solo 1 fila de la base de datos. Si sé que solo obtendré una fila de la base de datos, no veo por qué necesito el ciclo foreach, pero no sé cómo cambiar el código.

$DBH = new PDO( "connection string goes here" ); $STH = $DBH -> prepare( "select figure from table1" ); $STH -> execute(); $result = $STH -> fetchAll(); foreach( $result as $row ) { echo $row["figure"]; } $DBH = null;


Gracias a la sugerencia de Steven de usar fetchColumn, esta es mi recomendación para cortar 1 línea de su código.

$DBH = new PDO( "connection string goes here" ); $STH - $DBH -> query( "select figure from table1" ); $result = $STH -> fetchColumn(); echo $result; $DBH = null;


Has probado:

$DBH = new PDO( "connection string goes here" ); $row = $DBH->query( "select figure from table1" )->fetch(); echo $row["figure"]; $DBH = null;


Puede intentar esto para una consulta SELECT de base de datos basada en la entrada del usuario utilizando PDO:

$param = $_GET[''username'']; $query=$dbh->prepare("SELECT secret FROM users WHERE username=:param"); $query->bindParam('':param'', $param); $query->execute(); $result = $query -> fetch(); print_r($result);



Solo busca. solo obtiene una fila Entonces no se necesita ningún bucle foreach: D

$row = $STH -> fetch();

ejemplo (ty northkildonan):

$dbh = new PDO(" --- connection string --- "); $stmt = $dbh->prepare("SELECT name FROM mytable WHERE id=4 LIMIT 1"); $stmt->execute(); $row = $stmt->fetch();


$DBH = new PDO( "connection string goes here" ); $STH - $DBH -> prepare( "select figure from table1 ORDER BY x LIMIT 1" ); $STH -> execute(); $result = $STH -> fetch(); echo $result ["figure"]; $DBH = null;

Puedes usar fetch y LIMIT juntos. LIMIT tiene el efecto de que la base de datos devuelve solo una entrada, por lo que PHP debe manejar muy pocos datos. Con fetch obtienes la primera (y única) entrada de resultados de la respuesta de la base de datos.

Puede hacer más optimizaciones configurando el tipo de búsqueda, consulte http://www.php.net/manual/de/pdostatement.fetch.php . Si accede solo a través de los nombres de las columnas, debe numerar el conjunto.

Tenga en cuenta la cláusula ORDER. Use ORDER o WHERE para obtener la fila necesaria. De lo contrario, obtendrás la primera fila de la tabla al momento.