PHP/MySQL | parse error. what?
$arr = array('su' => $su, 'color' => $color, 'gold' => $gold);
$stmt = $connect->prepare("UPDATE `settings` SET `value` = ? WHERE `name` = ?");
foreach ($arr as $name => $value) {
$stmt->execute([$value, $name]);
}
(PDO)
Помогите найти ошибку/говнокодистость в этом запросе. Если она есть, не трольте бессмысленно, а обоснуйте.
p.s. прошу без оскорблений и т. п. как это обычно бывает:)
$stmt = $connect->prepare("UPDATE `settings` SET `value` = ? WHERE `name` = ?");
foreach ($arr as $name => $value) {
$stmt->execute([$value, $name]);
}
(PDO)
Помогите найти ошибку/говнокодистость в этом запросе. Если она есть, не трольте бессмысленно, а обоснуйте.
p.s. прошу без оскорблений и т. п. как это обычно бывает:)
В массиве 3 ключа, в запросе 2 плейсхолдера
Avenax, я знаю, но ведь через цикл foreach каждый ключ обрабатывается по отдельности
Может так правильнее?
$arr = array('su' => $su, 'color' => $color, 'gold' => $gold);
$stmt = $connect->prepare("UPDATE `settings` SET `value` = ? WHERE `name` = ?");
foreach ($arr as $name => $value) {
$stmt->execute(array($value, $name));
}
$arr = array('su' => $su, 'color' => $color, 'gold' => $gold);
$stmt = $connect->prepare("UPDATE `settings` SET `value` = ? WHERE `name` = ?");
foreach ($arr as $name => $value) {
$stmt->execute(array($value, $name));
}
$arr = array(
'su' => $su, 'color' => $color, 'gold' => $gold
);
$stmt = $connect->prepare('UPDATE settings SET value = ? WHERE name = ?');
foreach ($arr as $id => $bonus)
{
$stmt->execute([$bonus,$id]);
}
'su' => $su, 'color' => $color, 'gold' => $gold
);
$stmt = $connect->prepare('UPDATE settings SET value = ? WHERE name = ?');
foreach ($arr as $id => $bonus)
{
$stmt->execute([$bonus,$id]);
}
Avenax (06.01.2017 в 21:33)
$arr = array(
'su' => $su, 'color' => $color, 'gold' => $gold
);
$stmt = $connect->prepare('UPDATE settings SET value = ? WHERE name = ?');
foreach ($arr as $id => $bonus)
{
$stmt->execute([$bonus,$id]);
}
$arr = array(
'su' => $su, 'color' => $color, 'gold' => $gold
);
$stmt = $connect->prepare('UPDATE settings SET value = ? WHERE name = ?');
foreach ($arr as $id => $bonus)
{
$stmt->execute([$bonus,$id]);
}
Отличается от моего только "хорошим оформлением кода" для читабельности, а ошибки там нет? как думаеш?
Avenax (06.01.2017 в 21:33)
$arr = array(
'su' => $su, 'color' => $color, 'gold' => $gold
);
$stmt = $connect->prepare('UPDATE settings SET value = ? WHERE name = ?');
foreach ($arr as $id => $bonus)
{
$stmt->execute([$bonus,$id]);
}
$arr = array(
'su' => $su, 'color' => $color, 'gold' => $gold
);
$stmt = $connect->prepare('UPDATE settings SET value = ? WHERE name = ?');
foreach ($arr as $id => $bonus)
{
$stmt->execute([$bonus,$id]);
}
я даже знаю откуда ты это "перерисмовал"
![:-D](https://bym.guru/modules/smiles/smiles/ag.gif)
rekmixa, http://phpfaq.ru/pdo#connect
rekmixa, если структура таблицы ок, то все должно быть ок
Avenax, ладно. спасибо за помощь
Стр.: 1, 2