无法显示PDO查询结果 - 使用MySQLi一切正常

时间:2015-07-13 11:32:14

标签: php mysql pdo mysqli

MySQLi处理程序 - 这个正在按预期显示所有内容。

$wynik = @$polaczenie -> query("SELECT zlec_status.nazwa                       AS Status, 
           piorytet.nazwa                          AS Priorytet, 
           Concat(koord.imie, ' ', koord.nazwisko) AS `Koordynator`, 
           Concat(zlec_adresy.miasto, ' - ', zlec_adresy.ulica, ' ', 
           zlec_adresy.oddzial) 
                                                   AS `adres`, 
           zlec_z_dnia,zlec_id,
           zlec_nr, 
           zlec_do, 
           zlec_ogran, 
           awizacje, 
           awizacja_na_dzien, 
           termin_zamkniecia, 
           tresc, 
           uwagi 
    FROM   zlec 
           INNER JOIN koord 
                   ON zlec.koord = koord.id 
           INNER JOIN zlec_adresy 
                   ON zlec.zlec_addres = zlec_adresy.id 
           INNER JOIN piorytet 
                   ON zlec.priorytet = piorytet.id 
           INNER JOIN zlec_status 
                   ON zlec.status_zlecenia = zlec_status.id 
    WHERE `zlec_adresy`.`miasto` LIKE '%".array_values($activeFilters)[0]."%'
                OR
                  `zlec_adresy`.`ulica` LIKE '%".array_values($activeFilters)[0]."%'
                OR 
                  `zlec_adresy`.`oddzial` LIKE '%".array_values($activeFilters)[0]."%'
    LIMIT 0,10");
        if ($wynik === false){
            echo '<p>Zapytanie nie zostało wykonane poprawnie!</p>';
            $polaczenie -> close();
        }
        else {
        $foutput = null;
        while(($row = $wynik -> fetch_assoc()) !== null){
        $foutput[] = array(
                'zlec_id' => $row['zlec_id'],
                //'koord' => $zlecenie->get_coord($row['koord']),
                'priorytet' =>$row['Priorytet'],
                'zlec_addres' => $row['adres'],
                'zlec_z_dnia' => $row['zlec_z_dnia'],
                'zlec_nr' => $row['zlec_nr'],
                'zlec_do' => $row['zlec_do'],
                'zlec_ogran' => $row['zlec_ogran'],
                'awizacje' => $zlecenie->get_person_awizo($row['awizacje']),
                'awizacja_na_dzien' => $row['awizacja_na_dzien'],
                'status_zlecenia' => $row['Status'],
                'termin_zamkniecia' => $row['termin_zamkniecia'],
                'tresc' => $row['tresc'],
                'uwagi' => $row['uwagi']
          );
    }
            $wynik -> close(); // zwolnienie pamięci
            $polaczenie -> close();
        }

var_dump($ foutput)将显示它包含的所有数据。

PDO处理程序

    $fquery = $db->query("SELECT zlec_status.nazwa                       AS Status, 
       piorytet.nazwa                          AS Priorytet, 
       Concat(koord.imie, ' ', koord.nazwisko) AS `Koordynator`, 
       Concat(zlec_adresy.miasto, ' - ', zlec_adresy.ulica, ' ', 
       zlec_adresy.oddzial) 
                                               AS `adres`, 
       zlec_z_dnia,zlec_id,
       zlec_nr, 
       zlec_do, 
       zlec_ogran, 
       awizacje, 
       awizacja_na_dzien, 
       termin_zamkniecia, 
       tresc, 
       uwagi 
FROM   zlec 
       INNER JOIN koord 
               ON zlec.koord = koord.id 
       INNER JOIN zlec_adresy 
               ON zlec.zlec_addres = zlec_adresy.id 
       INNER JOIN piorytet 
               ON zlec.priorytet = piorytet.id 
       INNER JOIN zlec_status 
               ON zlec.status_zlecenia = zlec_status.id 
WHERE :where_st LIMIT :start, :pagesize", array(
            "start" => $start,
            "pagesize" => $pagesize,
            "where_st" => $where
        ));

这是绑定的生成器。

$pagenum = $_GET['pagenum'];
$pagesize = $_GET['pagesize'];
$start = $pagenum * $pagesize;

switch (array_keys($activeFilters)[0]) {
    case "zlec_addres":
        $where .= "`zlec_adresy`.`miasto` LIKE '%".array_values($activeFilters)[0]."%'
            OR
              `zlec_adresy`.`ulica` LIKE '%".array_values($activeFilters)[0]."%'
            OR 
              `zlec_adresy`.`oddzial` LIKE '%".array_values($activeFilters)[0]."%'";
        break;
}

最后是$ fquery的转储

SELECT zlec_status.nazwa                       AS Status, 
       piorytet.nazwa                          AS Priorytet, 
       Concat(koord.imie, ' ', koord.nazwisko) AS `Koordynator`, 
       Concat(zlec_adresy.miasto, ' - ', zlec_adresy.ulica, ' ', 
       zlec_adresy.oddzial) 
                                               AS `adres`, 
       zlec_z_dnia,zlec_id, 
       zlec_nr, 
       zlec_do, 
       zlec_ogran, 
       awizacje, 
       awizacja_na_dzien, 
       termin_zamkniecia, 
       tresc, 
       uwagi 
FROM   zlec 
       INNER JOIN koord 
               ON zlec.koord = koord.id 
       INNER JOIN zlec_adresy 
               ON zlec.zlec_addres = zlec_adresy.id 
       INNER JOIN piorytet 
               ON zlec.priorytet = piorytet.id 
       INNER JOIN zlec_status 
               ON zlec.status_zlecenia = zlec_status.id 
WHERE `zlec_adresy`.`miasto` LIKE '%Sz%'
            OR
              `zlec_adresy`.`ulica` LIKE '%Sz%'
            OR 
              `zlec_adresy`.`oddzial` LIKE '%Sz%' LIMIT 0, 10

这是非常有线的,因为MySQLi处理程序和phpmyadmin中的直接sql查询都返回了所需的数据 - 但似乎PDO处理程序没有显示任何内容,只有我想到的是我使用的东西'%".array_values($activeFilters)[0]."%'作为查询的字符串注入,但它应该作为参数传递 - 我不确定我可能是错的我真的想坚持创建下一个数据库连接的PDO instate。你可以尝试解释一下为什么它不显示? Var_dumping PDO查询返回数组(0) - 回显代码并粘贴到phpmyadmin返回9个受影响的行。 此外,相同的查询但没有WHERE部分 - 正常运行并显示受影响的行甚至更有线

0 个答案:

没有答案