仅当字段为空时更新

njthzxwz  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(395)

我正试图阻止两个表根据第一个表的更新进行更新。
这是我要检查的第一张table。

//add user to pif_table//
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query="UPDATE `pif_table` SET $g = '$uname', @success = 1 WHERE $g IS NULL OR $g = '' AND id = '$id' ";
$db->setQuery($query);
$result = $db->execute();

因此,上面的第一个表只有在$g列为空时才会更新。
我只希望在,$g列为空并且在上面更新的情况下更新接下来的两个表。
我从命令的@success=1部分收到一个语法错误。

if ($success == 1){
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query="UPDATE `jospk_users` SET tables = tables +1, payments = payments +1, tbl".$pifbase."= tbl".$pifbase." +1 WHERE id = '$uid'";
$db->setQuery($query);
$result = $db->execute();

$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query = "INSERT INTO `pif_payments` (`table_num`, `r_1`, `r_2`, `r_3`, `r_4`, $g, `amount`) VALUES ('$id', '$r1', '$r2', '$r3', '$r4', '$uname', '$pifbase') ON DUPLICATE KEY UPDATE $g = '$uname'";
$db->setQuery($query);
$result = $db->execute();
}
cgfeq70w

cgfeq70w1#

据我所知,乔姆拉的工厂 execute 如果记录没有更新,方法将不会返回false,并且只有在查询数据库时才能检查此项。
因此,在尝试运行第一个变量之前,请使用新值创建一个变量或数组 UPDATE 查询后,检查记录并查看它是否与新值匹配,如果匹配,则继续运行其余的查询。

相关问题