I thought this was a fairly simple request:
$qry="SELECT taglink, tagtitle, tagshow FROM taglist_main WHERE tag = ?"; if ($stmt = mysqli_prepare($link,$qry)) { mysqli_stmt_bind_param($stmt,"s",$qstring); mysqli_stmt_execute($stmt); mysqli_stmt_bind_result($stmt,$taglink,$tagtitle,$tagshow); mysqli_stmt_store_result($stmt); echo "<p><strong>".mysqli_stmt_num_rows($stmt)."</strong> entries found, shown below.</p>"; while (mysqli_stmt_fetch($stmt)) { echo "<li><a href=\"/$taguri\" title=\"$tagtitle\">$tagshow</a></li>"; } mysqli_stmt_close($stmt);
However, php seems to think differently. When I launched the request, I received the following error:
Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 4294967296 bytes) in /home/envoyenv/public_html/envoytest/tags/index.php on line 110
when using the mysql_stmt_bind_param string. If I leave this line and edit the SELECT to use the $qstring string variable directly, I don't get any results displayed on the screen (in fact, I get NOTHING shown on the screen, not even echo !)
This is not a particularly large table (less than 300 rows), and this query should return 10 rows or so (and the SELECT works fine in phpmyadmin , the expected results are returned)
What am I doing wrong?
Edit:
I already checked to ensure that $ qstring is actually a string: here is the result of var_dump : string (14) "riskassessment"
source share