Komme auch nicht weiter..

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Komme auch nicht weiter..

    Hallo,
    habe diesen Beitrag verfolgt und habe so ziemlich das gleiche Problem. Komischerweise läuft es auf meinem Testserver ohne irgend eine Fehlermeldung einwandfrei.

    Aber beim scharf schiessen - kümmte da diese...

    Fatal error: Uncaught exception 'PDOException' with message '
    SQLSTATE[HY000]: General error: 2014 Cannot execute queries while other unbuffered queries are active.
    Consider using PDOStatement::fetchAll(). Alternatively, if your code is only ever going to run against mysql,
    you may enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute.'
    in /var/www/vhosts/domain.eu/httpdocs/map_data.php:65 Stack trace:
    #0 /var/www/vhosts/domain.eu/httpdocs/map_data.php(65): PDO->prepare('SELECT * FROM d...') #1
    {main} thrown in /var/www/vhosts/domain.eu/httpdocs/map_data.php on line 65

    Es handelt sich hierbei um einen Teil eines Clusterscripts für GMap, welches ich gern einsetzen würde. Ich hatte deshalb heute den Server auf PHP5 umgestellt und benötige daher etwas Hilfe..

    Hier der Code, um den es geht :

    PHP-Code:
    <?php  $fetch_generations 5
    $viewport_points_upper_limit 80;
      switch(
    $_GET['data']) 
    {  
     case 
    'us':     
    $clusters_table "dams_us_clusters";     
    break;   
    default:    
     
    $clusters_table "dams_au_clusters"
    }  
    require(
    'wp-config.php'); 
    try {   
    $dbh = new PDO('mysql:host=localhost;dbname=transflug'DB_USERDB_PASSWORD); 
     
    $dbh->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION); 

    catch (
    PDOException $e
    {   
    print 
    "Error: " $e->getMessage();   die();
     }  
    list(
    $latitude_min$longitude_min) = explode(','$_GET['sw']);
    list(
    $latitude_max$longitude_max) = explode(','$_GET['ne']);
     if (
    $longitude_min $longitude_max
    {
       if (
    abs($longitude_min) > abs($longitude_max)) 
    {
       
    $longitude_min = -179.99;   
    } else 
    {     
    $longitude_max 179.99;   } 
    }  
    $viewport_query $dbh->prepare(   "SELECT * FROM $clusters_table WHERE
      latitude_min <= :latitude_min 
    AND   latitude_max >= :latitude_max 
    AND   longitude_min <= :longitude_min 
    AND   longitude_max >= :longitude_max   
    ORDER BY level DESC LIMIT 1"
    ); 
    $viewport_query->bindParam(':latitude_min'$latitude_min);
     
    $viewport_query->bindParam(':latitude_max'$latitude_max); 
    $viewport_query->bindParam(':longitude_min'$longitude_min); 
    $viewport_query->bindParam(':longitude_max'$longitude_max);  
    $viewport_query->execute(); 
     if (
    $viewport_query->rowCount() > 0
    {   
    $parent_cluster $viewport_query->fetch(PDO::FETCH_ASSOC);
     }
     else 
    {   
    $viewport_query_wide $dbh->prepare(     "SELECT * FROM $clusters_table WHERE LEVEL=0 LIMIT 1");  
     
    $viewport_query_wide->execute();   $parent_cluster $viewport_query_wide->fetch(PDO::FETCH_ASSOC);
     } 
     
    $root_level $parent_cluster['level'];
     
    $min_level $root_level $fetch_generations;
     
    $children_query $dbh->prepare(   "SELECT * FROM $clusters_table 
    WHERE   left_side >= :left 
    AND   right_side <= :right 
    AND   level <= :level_min 
    AND NOT (     latitude_min > :latitude_max 
    OR     latitude_max < :latitude_min 
    OR     longitude_min > :longitude_max 
    OR      longitude_max < :longitude_min   )   
    ORDER BY level ASC, child_count DESC"
    ); 
    $children_query->bindParam(':level_min'$min_level); 
    $children_query->bindParam(':left'$parent_cluster['left_side']); 
    $children_query->bindParam(':right'$parent_cluster['right_side']); 
    $children_query->bindParam(':latitude_min'$latitude_min); 
    $children_query->bindParam(':latitude_max'$latitude_max); 
    $children_query->bindParam(':longitude_min'$longitude_min); 
    $children_query->bindParam(':longitude_max'$longitude_max);  
    $children_query->execute();   $clusters_by_id = array(); 
    $root_cluster_id 0; while($this_cluster $children_query->fetch(PDO::FETCH_ASSOC)) 
    {
       
    $this_cluster_id $this_cluster['id'];
       
    $this_cluster['children'] = array(); 
      
    $this_cluster['included'] = false;   $clusters_by_id[$this_cluster_id] = $this_cluster;
       if (
    $this_cluster['level'] == $root_level

        
    $root_cluster_id $this_cluster_id;  
     } 
    else 
    {     
    $clusters_by_id[$this_cluster['parent_id']]['children'][] = $this_cluster_id
      } 
    }  
    //var_dump($clusters_by_id); 
     
    $total 1;
     
    $clusters_by_id[$root_cluster_id]['included'] = true
     foreach(
    $clusters_by_id as &$this_cluster

      if (
    $this_cluster['included']) 

       if (
    $total count($this_cluster['children']) - <= $viewport_points_upper_limit

       if (
    count($this_cluster['children']) > 0
    {         
    $total += count($this_cluster['children']) - 1
            foreach(
    $this_cluster['children'] as $included_id)
     {           
    $clusters_by_id[$included_id]['included'] = true
            }         
    $this_cluster['included'] = false;
           }
         } 
    else 
    {  
         break;    
       }
       } 

    unset(
    $this_cluster); 
       echo 
    "/* ".count($clusters_by_id)." clusters from SQL, chose ".$total." for display. */\n";   $items_text = array(); 
     foreach(
    $clusters_by_id as $this_cluster
    {
       if (
    $this_cluster['included']) 

        
    $items_text[] = "[".$this_cluster['id'].","$this_cluster['latitude'] .","$this_cluster['longitude'] .","$this_cluster['child_count'] ."]";    
     } 
    }  
    echo 
    '[' implode(", "$items_text) . ']'
     
    ?>
    Da ich noch garnix mit php5 gemacht habe, stehe ich irgendwie im Dunkeln, zumal es mich erstaunt, das es auf einem Server geht und auf dem anderen wieder nich...

    Würde mich sehr über einen Anschub freuen..

    Danke Kasimir
    Zuletzt geändert von kasimir61; 09.07.2008, 03:47.

  • #2
    Dieser Thread war neulich mit ähnlicher Problematik im Board. Guck dir den mal an.

    Kommentar


    • #3
      Danke, aber es hilft mir nicht wirklich weiter..

      Zuerst einmal Danke!

      ich habe diesen Beitrag gelesen, aber da ich mit php5 so gut wie keine Ahnung habe, hilft mir das nicht wirklich weiter.

      Was ich soweit verstanden habe ist, das die Abfrage nicht verschachtelt sein sollte. Aber auch mit den Möglichkeiten die in einigen Beiträgen dargestellt werden, komme ich nicht wirklich weiter.

      Gruß
      Kasimir

      Kommentar


      • #4
        PDO::errorInfo(): Array ( [0] => HY000 [1] => 2014 [2] => Cannot execute queries while other unbuffered queries are active. Consider using PDOStatement::fetchAll().
        Alternatively, if your code is only ever going to run against mysql, you may enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute. )
        Das ist der entscheidende Hinweis!

        Kommentar


        • #5
          funzt auch nich..

          Hallo,
          habe ich auch schon probiert, aber der Fehler bleibt.
          Zudem erhalte ich dann ganz neue Fehler, wenn ich
          MYSQL_ATTR_USE_BUFFERED_QUERY verwende.

          Ebenso verhält es sich mit fetchAll();
          Es funzt nicht, da ich warscheinlich das ganze falsch einfüge und
          genau darauf basiert mein Hilferuf.

          Kannst du mir eventuell genauer an meinem Code sagen, wo ich was
          einfügen muss??

          Ich habe jezt ca. 10 Stunden damit verbracht, alles mögliche zu
          versuchen, aber ich bekomme es nicht hin. Mit den Hinweisen zur
          Fehlermeldung kann ich leider auch nicht viel anfangen, da ich
          mit PHP5 und mit PDO erst seit gestern arbeite.

          Überhaupt finde ich diese PDO Geschichte ziemlich schwachsinnig,
          wenn Sie auf einem Server läuft und auf dem anderen wieder nicht.
          Wenn man dann eine Lösung hat, dann bedeutet es nicht, das
          sie dann auch läuft - dieses Beispiel hier läuft auf meinem Xamp Server zu Hause ohne Probs und hier macht er Probleme.

          Na gut, vielleicht habe ich ja etwas Glück und hier ist jemand, der
          einen erleuchten kann ;-)

          Also nix für ungut, aber mit deinem Hinweis kann ich leider nicht
          wirklich etwas anfangen, da ich die in der Fehlermeldung
          aufgezeigten Schritte schon probiert habe.

          Dennoch vielen Dank für deine Antwort.

          Kasimir

          Kommentar

          Lädt...
          X