Converted PHP query to PDO and now getting no results -
i had query working fine, after converting pdo getting results below instead of results laid out in table. perhaps problem foreach loop , variables? if dump $row array(0) { }, results below when dump $results:
//original (but not secure) code worked:
$results = $wpdb->get_results("select stories.story_name, stories.category, stories.sid, wp_users.id, wp_users.display_name stories left join wp_users on stories.id=wp_users.id stories.active = 1"); //new pdo code not working:
$results = $dbh->prepare("select wp_users.id, wp_users.display_name, stories.sid, stories.story_name, stories.category, stories left join wp_users on stories.id=wp_users.id stories.active=1"); $results->execute(); $row = $results->fetchall(pdo::fetch_assoc); echo var_dump($results); if ($row) { echo '<table>'; echo '<tr>'; echo '<td><b>topic</b></td>'; echo '<td><b>category</b></td>'; echo '<td><b>last user</b></td>'; echo '</tr>'; foreach ($row $result) { echo '<tr>'; echo "<td>site</td>"; echo '<td>$row->category; '</td>'; echo "<td>display_name</a></td>"; } echo '</table>'; } ?> //results on page:
object(pdostatement)#76 (1) { ["querystring"]=> string(203) “select wp_users.id, wp_users.display_name, stories.sid, stories.story_name, stories.category, stories left join wp_users on stories.id=wp_users.id stories.active=1″ }
kindly remove bindparam part. , remain part because have not passed parameters in prepared statement.
$results = $dbh->query(" select wp_users.id, wp_users.display_name, stories.sid, stories.story_name, stories.category, storiesleft join wp_users on stories.id=wp_users.id stories.active=1 "); $row = $results->fetchall(pdo::fetch_assoc); edit: seem have gotten mixed on way. how should have table
<table> <tr> <th>topic </th> <th>category</th> <th>last user</th> </tr> <tr> <?php foreach ($row data) { ?> <td><?php echo $data['story_name']; ?></td> <td><?php echo $data['category']; ?></td> <td><?php echo $data['display_name']; ?></td> <?php } ?> </tr> </table> you have these issue address:
when use
$row = fetchall(pdo::fetch_assoc);, fetch rows $row['foobar'] (array foobar being key) , not $row->foobar. later meant fetching data object$row = fetchall(pdo::fetch_obj);you don't echo out html. check these php best practices (especially no. 5).
Comments
Post a Comment