// 17.2 Att false returnerades beror på på att nått gick fel // 18. Läste i CDatabase om ErrorCode() och ErrorInfo() // 19. Anropa och skriv ut resultatet av ErrorCode() och ErrorInfo(). echo "ErrorCode: " . $dbh->ErrorCode(); var_dump($dbh->ErrorInfo()); // 19.1 Felkod 42000 visas // 19.2 42000 är ett vanligt SQLSTATE-fel // 19.3 Meddelandet säger att felet i närheten av likhetsteknen // 20. Åtgärda felen i queryn ovan. Svara på följande frågor som kommentarer i test.php: //20.1 Jag ändratde queryn till ett likhetstecken och sedan funkade det // 21. Läste sedan i CDatabase om vad GetNumQueries() och GetQueries() gör. // 22. Anropade GetNumQueries() och GetQueries() echo "num queries: " . $dbh->GetNumQueries(); var_dump($dbh->GetQueries()); // 22.1 GetNumQueries() ger antalet frågor som körts // 22.2 GetQueries() visar vilka frågor som körts // 23. Läste sedan om CDatabase::Dump() // 24. Anropade Dump echo "dbh dump: " . $dbh->Dump(); //24.1 Dump()skriver ut alla databasfrågor som html // 25. Läste om CDatabase::SaveDebug() //26. Anropade SaveDebug() $dbh->SaveDebug(); // och skrev sedan ut sessionen echo "SESSION: <br>"; $html = dump($_SESSION); $html = preg_replace('#(<br */?>\\s*)+#i', '<br />', $html); echo $html; // 26.1 I sessionen sparas information av SaveDebug om vilka databasfrågor som körts // 26.2 Datan sparas under nyckeln Database // 26.3 Om man laddar om sidan så byggs den på med mer debug-info (när savdDebug körs)
$where = $where ? " WHERE 1 {$where}" : null; $sql = $sqlOrig . $where . $groupby . $sort . $limit; $res = $db->ExecuteSelectQueryAndFetchAll($sql, $params); // Put results into a HTML-table $tr = "<tr><th>Rad</th><th>Id " . orderby('id') . "</th><th>Bild</th><th>Titel " . orderby('title') . "</th><th>År " . orderby('year') . "</th><th>Genre</th></tr>"; foreach ($res as $key => $val) { $tr .= "<tr><td>{$key}</td><td>{$val->id}</td><td><img width='80' height='40' src='{$val->image}' alt='{$val->title}' /></td><td>{$val->title}</td><td>{$val->year}</td><td>{$val->genre}</td></tr>"; } // Get max pages for current query, for navigation $sql = "\n SELECT\n COUNT(id) AS rows\n FROM \n (\n {$sqlOrig} {$where} {$groupby}\n ) AS Movie\n"; $res = $db->ExecuteSelectQueryAndFetchAll($sql, $params); $rows = $res[0]->rows; $max = ceil($rows / $hits); $hitsPerPage = getHitsPerPage(array(2, 4, 8), $hits); $navigatePage = getPageNavigation($hits, $page, $max); $sqlDebug = $db->Dump(); ?> <h1 class="center">Sök efter en film </h1> <form method="get"> <input type=hidden name=p value='moviesearchall'/> <input type=hidden name=hits value='<?php echo $hits; ?> '/> <input type=hidden name=page value='1'/> <p><label>Titel (eller del av titel): <input type='search' autofocus="autofocus" name='title' value='<?php echo $title;