Ben benzer bir soru için stackoverflow etrafında baktım, ama benim aradığım tam olarak ne bulamadım, bu yüzden buraya. Myphpadmin size bir açıklamada Mulitple sorguları olabilir ve bu, örneğin, sizin için yürütür: '
UPDATE `test` WHERE `test2` = 4;
UPDATE `test` WHERE `test4` = 8;
UPDATE `test` WHERE `test8` = 1;
PHP böyle bir şey yapmaya çalışırsanız Şimdi, hiç çalışmıyor. örneğin:
$test = 'UPDATE `test` SET `value` = "123" WHERE `test2` = 4;
UPDATE `test` SET `value` = "321" WHERE `test4` = 8;
UPDATE `test` SET `value` = "533" WHERE `test8` = 1;';
mysql_query($test);
Verir ve hata:
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 '; UPDATE
test
SET value = "123" WHEREtest2
= 4; UPDATEtest
SE' at line 1
O bir açıklamada, diyelim ki, yukarıdaki gibi birden sorguları birleştirmek bile mümkün mü? (Bunun arkasındaki mantık muhtemelen çok kötü, ama ben bu yüzden bunu yapmak için daha iyi bir yolu varsa bana bildirin lütfen, çok MySQL deneyimi yok): Ben şu durumda bunu yapmak istiyor
Kez çift üzerinde şu döngüler:
function SaveConfig($name, $value)
{
global $sql_save_query;
$sql = 'SELECT * FROM `config` WHERE `name` = "'.$name.'"';
$res = mysql_query($sql);
if($res)
{
$sql_save_query .= 'UPDATE `config` SET value = "'.$value.'" WHERE `name` = "' .$name. '"; '."\n";
}
else
{
$sql_save_query .= 'INSERT INTO `config`(`id`,`name`,`value`) VALUES("","' .$name. '","' .$value. '"); '."\n";
}
}
Döngü bittikten sonra sonra çalışır:
mysql_query($sql_save_query);
hangi bir hata veriyor:
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 '; UPDATE
config
SET value = "" WHEREname
= "fcolour2"; UPDATEconfig
SE' at line 1
Şimdi (aklımda) benim diğer seçenek sadece bir anda, her döngü sonra bir sorgu, bir SQL sorgusu çalıştırmak için. Ama bu kötü / yavaş / kötü bir uygulama olmaz mı?
Teşekkürler!