PDO MySQL çağrı tamponsuz sorguları hata retruns

0 Cevap php

Ben Online araştırdım ama çoğu örnekler veya talimatlar Ben başarmak için çalışıyorum ne için geçerli görünmüyor.

Kısacası benim kod aşağıdaki başarmak gerekir:

Bir saklı yordam döngü istiyorum bir dataset döndüren ve (çevrimiçi görüntüleme amaçları için) bir tablodaki satırları üretmek benim php komut dosyası denir. Benim tablo içinde alanlardan biri, ancak, bir UserID etkilenen satır sayısını saymak için (hatta ilk etapta saklı yordamı kullanmanız gerekmez) ayrı bir tabloda aramak gerekir.

Aşağıda benim komut dosyası bu hatayı döndürür:

Sqlstate [HY000]: Genel hata: diğer tamponsuz sorgular aktif iken 2014 sorguları yürütmek olamaz. PDOStatement :: fetchAll () kullanmayı düşünün. Kod sadece hiç mysql karşı çalıştırmak için gidiyor ise Alternatif olarak, PDO :: MYSQL_ATTR_USE_BUFFERED_QUERY niteliğini ayarlayarak sorgu arabelleğe etkinleştirebilirsiniz.

Code:

<body>
<table border='0' cellpadding='0' cellspacing='1'>
    <thead>
        <tr bgcolor='#E0EBF1'>
            <th>Agent NO</th>
            <th>Comm Lvl</th>
            <th>Agent Name</th>
            <th>Address</th>
            <th>parent_agent_name</th>
            <th>Contacts</th>
            <th>45 Day</th>
            <th>STS</th>
        </tr>
    </thead>
    <tbody>

<?php

$agetnumber = 123456789;


    try {   
            $db = new PDO('mysql:host=localhost;dbname=DBNAME', 'USER', 'PW');
            $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            $db->beginTransaction();

            $stmt = $db->query('CALL hier($agentnumber)');
            foreach($stmt as $row)
            {
                $sql = $db->query("SELECT AGENT FROM activity WHERE AGENT = '$row[AGTNO]");
                $foundrows = $db->query("SELECT FOUND_ROWS()")->fetchColumn();          

                echo sprintf("<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>",
                $row["AGTNO"], $row["AGTCOMMLVL"],
                $row["AGTFNAME"]."<br><i>Contracted: ".$row["KDATE"],
                $row["parent_agent_id"],
                $row["parent_agent_name"],
                $row["commission_level"],
                $foundrows,
                $foot);
            }           
            $db->commit();
        }

    catch (PDOException $e)
        {
            $db->rollback();
            echo $e->getMessage();
            exit;
        }

Kodunu etkileyen hatları şunlardır:

$sql = $db->query("SELECT AGENT FROM activity WHERE AGENT = '$row[AGTNO]");
$foundrows = $db->query("SELECT FOUND_ROWS()")->fetchColumn();

çıkardıktan hata "kurtulur" ama ben her sonuç satır kümesi için ihtiyaç $ foundrows değişken çekin sonra kuramıyorum.

Hiç kimse daha önce bu sorunla karşı karşıya?

0 Cevap