Здравствуйте, я пытаюсь проверить, существует ли идентификатор или нет, что я должен указать в своем выражении if, я хочу, чтобы он просто проверял и вставлял, если не существует в базе данных, а затем вставлял. и если он существует, ничего с ним не делайте.
function exists($date_, $account, $dimension)
{
$sql = "SELECT account FROM ".TB_PREF."budget WHERE account = ".db_escape($account)
." AND tran_date='$date_' AND
id = ".db_escape($dimension)." AND
$result = db_query($sql, "Cannot retreive transaction");
return (db_num_rows($result) > 0);
}
function add($date_, $account, $dimension, $dimension2, $amount)
{
$date = date2sql($date_);
if (exists_gl_budget($date, $account, $dimension, $dimension2))
else
$sql = "INSERT INTO ".TB_PREF."budget(tran_date,
account, id) VALUES ('$date',
".db_escape($account).", ".db_escape($dimension).", "
.db_escape($dimension2).", ".db_escape($amount).", '')";
db_query($sql, " not be saved");
}
как бы я это сделал, если я оставлю пустым в выражении if, это даст мне много ошибок
Если вы не можете сказать по подсветке синтаксиса в своем вопросе, у вас есть синтаксические ошибки в вашем коде.
вероятно, отказаться от IF и вместо этого сразу перейти к INSERT IGNORE INTO?
Это пронизано ошибками, которые вы должны исправить, например, ваша функция с именем exists, где, когда вы используете exists_gl_budget в нижнем скрипте, у вас есть зависание " AND без закрывающей кавычки, тогда ваш оператор вставки имеет 3 столбца, но 6 значений... и наконец у вас есть все эти функции, которые должны быть заменены правильной привязкой параметров.
Уже исправлена большая часть ошибки, но я все еще не могу понять, как не вставлять дублирующуюся базу данных, если она уже существует, продолжать вставлять ту же базу данных, как остановить ее от повторной вставки, если база данных уже существует?






вы можете вставить без проверки и просто использовать модификатор IGNORE в запросе