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...
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 :
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
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
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_USER, DB_PASSWORD);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::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']) - 1 <= $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) . ']';
?>
Würde mich sehr über einen Anschub freuen..
Danke Kasimir
Kommentar