whine: XML in mySQL einlesen - Performanceproblem

Beitrag lesen

Nabend nochmal,

Das Prepare kommt vor die Schleife, weil es nur einmal ausgeführt werden mus. In die Schleife kommen Bind und Execute.

Leider nicht viiiel besser (ca. 90s)

$dbc = new PDO("mysql:host=localhost;dbname=topko_db", $user, $password);  
	$dbc->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );  
  
	$sql_eintrag = "INSERT INTO exp_analyse_messwerte  
	   (id  
	    Time,  
	  
		 ".$xml->{"ChannelInfo1"}->Name.",  
		 ".$xml->{"ChannelInfo2"}->Name.",  
		".$xml->{"ChannelInfo3"}->Name.",  
		".$xml->{"ChannelInfo4"}->Name.",  
		".$xml->{"ChannelInfo5"}->Name.",  
		".$xml->{"ChannelInfo6"}->Name.",  
		".$xml->{"ChannelInfo7"}->Name.",  
		".$xml->{"ChannelInfo8"}->Name.",  
		".$xml->{"ChannelInfo9"}->Name.",  
		".$xml->{"ChannelInfo10"}->Name.",  
		".$xml->{"ChannelInfo11"}->Name.",  
		".$xml->{"ChannelInfo12"}->Name.",  
		".$xml->{"ChannelInfo13"}->Name."  
		  ) VALUES  
  
		(:id, :Time, :ChannelInfo1, :ChannelInfo2, :ChannelInfo3, :ChannelInfo4  
		, :ChannelInfo5, :ChannelInfo6, :ChannelInfo7, :ChannelInfo8, :ChannelInfo9, :ChannelInfo10, :ChannelInfo11  
		, :ChannelInfo12, :ChannelInfo13)";  
	  
    $stmt = $dbc->prepare($sql_eintrag);  
  
	 for ($i=1; $i <= $xml->Values; $i++) {  
	  
	   $stmt->bindParam(':id', $id);  
	   $stmt->bindParam(':Time', $xml->{"M$i"}->Time);  
	   $stmt->bindParam(':ChannelInfo1', $xml->{"M$i"}->{"Ch1"});  
	   $stmt->bindParam(':ChannelInfo2', $xml->{"M$i"}->{"Ch2"});  
	   $stmt->bindParam(':ChannelInfo3', $xml->{"M$i"}->{"Ch3"});  
	   $stmt->bindParam(':ChannelInfo4', $xml->{"M$i"}->{"Ch4"});  
	   $stmt->bindParam(':ChannelInfo5', $xml->{"M$i"}->{"Ch5"});  
	   $stmt->bindParam(':ChannelInfo6', $xml->{"M$i"}->{"Ch6"});  
	   $stmt->bindParam(':ChannelInfo7', $xml->{"M$i"}->{"Ch7"});  
	   $stmt->bindParam(':ChannelInfo8', $xml->{"M$i"}->{"Ch8"});  
	   $stmt->bindParam(':ChannelInfo9', $xml->{"M$i"}->{"Ch9"});  
	   $stmt->bindParam(':ChannelInfo10', $xml->{"M$i"}->{"Ch10"});  
	   $stmt->bindParam(':ChannelInfo11', $xml->{"M$i"}->{"Ch11"});  
	   $stmt->bindParam(':ChannelInfo12', $xml->{"M$i"}->{"Ch12"});  
	   $stmt->bindParam(':ChannelInfo13', $xml->{"M$i"}->{"Ch13"});  
	  
	  
	   $stmt->execute();  
	  
	}