Datenbank-Update mit WHERE IN($array)?

hi, ich versuche gearde ein einfaches Update der Lagerbestände direkt in der Datenbank zu machen.

scheinbar bin ich aber zu blöd. Folgendes funktioniert:

$update = Shopware()->Db()->update('s_articles_details', array('instock' => $data['quantity']),array('id IN(?)'=>array(60,137)));

Wobei folgendes nciht funktioniert:

foreach($articledetails as $variant){
     $articledetailsIDs[] = (int)$variant['articledetailsID'];
}
$update = Shopware()->Db()->update('s_articles_details', array('instock' => $data['quantity']),array('id IN(?)'=> $articledetailsIDs));

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '))' at line 1 in engine/Library/Zend/Db/Statement/Pdo.php on line 234

Ich habe das auch schon mit implode(’,’,$articledetailsIDs) etc. versucht. Kann mir jemand sagen wie die Syntax dafür lautet?

Vielen Dank.

 

Hallo,

Ich glaube Ihr Code ist richtig.

Aber könnten Sie überprüfen ob gibt Werte in $articledetailsIDs oder nicht?!

VG

Ahmad

1 „Gefällt mir“

@ahmadsaad schrieb:

Hallo,

Ich glaube Ihr Code ist richtig.

Aber könnten Sie überprüfen ob gibt Werte in $articledetailsIDs oder nicht?!

VG

Ahmad

Hallo Ahmad, vielen Dank für den Hinweis.  ich hatte natürlich geprüft ob mein Array überhaupt gefüllt ist. Die Prüfung hat in der Schleife aber nciht funktioniert weil ich noch eine Tippfehler hatte. War scheinbar schon zu spät gestern. Der Code oben funktioniert, danke.