ANkn
Новичок
Привет ребят, не выполняется скрип, и тем самым не заполняется таблица в БД. Ошибка - 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 - и вот кусок кода, который судя по всему не с тем синтаксисом. Вопрос, как правильно его отредактировать для работы? Спасибо
Вот проблемный кусок
А вот весь кусок кода
Вот проблемный кусок
Код:
$wpdb->query("TRUNCATE TABLE `{$wpdb->prefix}emetal_calc`");
$wpdb->query("
INSERT INTO `{$wpdb->prefix}emetal_calc`
SELECT
e.*,
IF (e.start < e.startx && e.start <> 0, e.startx / e.start, IF (e.startx <> 0, 1.0000, e.startx)) get,
IF (e.start < e.startx && e.start <> 0, 1.0000, IF (e.startx <> 0, e.start / e.startx, e.start)) give
FROM `{$wpdb->prefix}emetal` e
WHERE emetalx <> emetaly
AND start <> 0
AND startx <> 0");
Код:
public static function updateDoubleExchangeTable($wpdb) {
$disableDouble = (boolean)$wpdb->get_var("SELECT option_value FROM `{$wpdb->prefix}options` WHERE option_name='exch_disable_double'");
$wpdb->query("TRUNCATE TABLE `{$wpdb->prefix}emetal_calc`");
$wpdb->query("
INSERT INTO `{$wpdb->prefix}emetal_calc`
SELECT
e.*,
IF (e.start < e.startx && e.start <> 0, e.startx / e.start, IF (e.startx <> 0, 1.0000, e.startx)) get,
IF (e.start < e.startx && e.start <> 0, 1.0000, IF (e.startx <> 0, e.start / e.startx, e.start)) give
FROM `{$wpdb->prefix}emetal` e
WHERE emetalx <> emetaly
AND start <> 0
AND startx <> 0");
$wpdb->query("TRUNCATE TABLE `{$wpdb->prefix}zero_rezerv`");
$wpdb->query("
INSERT INTO `{$wpdb->prefix}zero_rezerv`
SELECT
emetalx,
emetaly
FROM
`{$wpdb->prefix}emetal_calc`
GROUP BY
emetalx, emetaly
HAVING SUM(rezerv) <= 0");
$wpdb->query("TRUNCATE TABLE `{$wpdb->prefix}double_exchange`");
if (!$disableDouble) {
$wpdb->query("
INSERT INTO `{$wpdb->prefix}double_exchange`
SELECT
e1.emetalx start_vlt,
e2.emetalx middle_vlt,
e2.emetaly end_vlt,
e1.get get1,
e1.give give1,
e2.get get2,
e2.give give2,
e1.koef koef1,
e2.koef koef2,
(
SELECT avg(koef) FROM `{$wpdb->prefix}emetal`
WHERE emetalx = e1.emetalx
AND emetaly = e2.emetaly) original_koef,
e1.koef / e2.koef result_koef,
e1.rezerv rezerv1,
e2.rezerv rezerv2,
e1.changer changer1,
e2.changer changer2
FROM `{$wpdb->prefix}emetal_calc` e1
INNER JOIN `{$wpdb->prefix}emetal_calc` e2
ON e1.emetaly = e2.emetalx AND e1.emetalx <> e2.emetaly
WHERE
NOT EXISTS (
SELECT * FROM `{$wpdb->prefix}emetal_calc` e WHERE e.emetalx = e1.emetalx AND e.emetaly = e2.emetaly
)
OR
EXISTS (
SELECT * FROM `{$wpdb->prefix}zero_rezerv` WHERE emetalx = e1.emetalx AND emetaly = e2.emetaly
)");
}
}