<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// The following is a PHP code example unrelated to the article content</span></span><span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">randomGreeting</span></span><span>(</span><span><span class="hljs-params"></span></span><span>) {
</span><span><span class="hljs-variable">$greetings</span></span><span> = [</span><span><span class="hljs-string">"Hello!"</span></span><span>, </span><span><span class="hljs-string">"Hi!"</span></span><span>, </span><span><span class="hljs-string">"Hey there!"</span></span><span>, </span><span><span class="hljs-string">"Greetings!"</span></span><span>];
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$greetings</span></span><span>[</span><span><span class="hljs-title function_ invoke__">array_rand</span></span><span>(</span><span><span class="hljs-variable">$greetings</span></span><span>)];
}
<p></span>echo randomGreeting();<br>
?></p>
<p><hr></p>
<p><?php<br>
// Main content starts here<br>
?></p>
<p><h1>PDOStatement::fetchColumn vs PDOStatement::fetchAll: How Big Is the Performance Difference?</h1></p>
<p><p>When using PDO for database operations in PHP, it’s common to encounter <code>PDOStatement::fetchColumn<span>
In the above example, each loop only retrieves one row’s id, which results in very low memory usage.
</span><span><span class="hljs-variable">$stmt</span></span><span> = </span><span><span class="hljs-variable">$pdo</span></span><span>-></span><span><span class="hljs-title function_ invoke__">query</span></span><span>(</span><span><span class="hljs-string">"SELECT id, name FROM users"</span></span><span>);
</span><span><span class="hljs-variable">$rows</span></span><span> = </span><span><span class="hljs-variable">$stmt</span></span><span>-></span><span><span class="hljs-title function_ invoke__">fetchAll</span></span><span>(PDO::</span><span><span class="hljs-variable constant_">FETCH_ASSOC</span></span><span>);
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$rows</span></span> </span><span><span class="hljs-keyword">as</span></span> </span><span><span class="hljs-variable">$row</span></span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$row</span></span><span>[</span><span><span class="hljs-string">'id'</span></span><span>] . </span><span><span class="hljs-string">' - '</span></span><span> . </span><span><span class="hljs-variable">$row</span></span><span>[</span><span><span class="hljs-string">'name'</span></span><span>] . </span><span><span class="hljs-string">"\n"</span></span><span>;
}
fetchAll loads the entire result set into memory at once. If the table is very large, this can negatively affect performance.
To summarize:
<?php
// PHP code example unrelated to the article content (footer)
function printTimestamp() {
echo "Current timestamp: " . time();
}
printTimestamp();
?>
Related Tags:
PDOStatement