cancel
Showing results for 
Search instead for 
Did you mean: 

MySQL Problem Unterschiede zwischen PDO und MYSQL ???

SOLVED

MySQL Problem Unterschiede zwischen PDO und MYSQL ???

Hallo Gemeinde,

 

Ich muss zugeben, dass ich schon ewigst nichts intensives mit MySQL gemacht habe.

Nun stelle ich aber gerade eine Shop um auf PHP7 und bin auf eine Extenssion gestossen, die mysql_escape_string verwendet.

Das geht aber mit mysqli nicht mehr, was ich aber bei PHP7 verwenden muss.

Also versuch ich umzuschreiben nach PDO und stosse auf eine Abfrage, die nie einen Fehler gebracht hat:

 

$write->query("DELETE FROM ".$table_sales_flat_shipment_comment."    WHERE parent_id IN (SELECT entity_id FROM ".$table_sales_flat_shipment." WHERE order_id='".mysqli_escape_string($orderId)."')");

Umgeschrieben nach PDO sieht es so aus:

 

 

$queryString = "DELETE FROM "
				.$table_sales_flat_shipment_comment
				." WHERE parent_id IN (SELECT entity_id FROM "
				.$table_sales_flat_shipment
				." WHERE order_id= :$orderId)";
$binds = array(
		'orderId' => $orderId,
		);
$write->query($queryString, $binds);

Das Problem ist, dass ich nun einen Fehler erhalte:

 

 

SQLSTATE[HY093]: Invalid parameter number: parameter was not defined, query was: DELETE FROM sales_flat_shipment_comment WHERE parent_id IN (SELECT entity_id FROM sales_flat_shipment WHERE order_id= :383)

Was ist hier falsch?

 

Ich kann in meinem Statement keinen Fehler erkennen, dennoch wirft die gleiche Abfrage bei PDO einen Fehler und bei MySQL nicht.

Überspringt MySQL da etwas?

 

Wie muss ich korrigieren, dass der Datensatz gelöscht wird, wenn $orderId in der Datenbank existiert, aber die Abfrage übersprungen wird wenn nicht existent.

 

Ich bin am verzweifeln, ich kann diese Abfrage ja nicht einfach auskommentieren, sonst fragmentier ich mir meine Datenbank ja selbst mit Datenmüll.

 

Bitte helft

Thomas

1 ACCEPTED SOLUTION

Accepted Solutions

Re: MySQL Problem Unterschiede zwischen PDO und MYSQL ???

sorry leute, ich hab wohl zu lange an der Kiste gesessen.

Problem gelöst.

FALSCH:

." WHERE order_id= :$orderId)";

RICHTIG:

." WHERE order_id= :orderId)";

Aber in jedem Fall hab ich nun gelernt, dass es kein Hexenwerk ist, aus veralteten mysql-Funktionen vernünftig und sicher auf PDO umzustellen :-)

 

Grüsse in die Nacht

 

 

 

 

 

View solution in original post

1 REPLY 1

Re: MySQL Problem Unterschiede zwischen PDO und MYSQL ???

sorry leute, ich hab wohl zu lange an der Kiste gesessen.

Problem gelöst.

FALSCH:

." WHERE order_id= :$orderId)";

RICHTIG:

." WHERE order_id= :orderId)";

Aber in jedem Fall hab ich nun gelernt, dass es kein Hexenwerk ist, aus veralteten mysql-Funktionen vernünftig und sicher auf PDO umzustellen :-)

 

Grüsse in die Nacht