我试图根据第一个表的更新来阻止 2 个表的更新。
这是我必须检查第一个表的内容。
//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 列为空时才会更新上面的第一个表。
我只希望更新接下来的 2 个表格,如果 $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();
}
最佳答案
据我了解,如果记录未更新,Jommla 的 JFactory 的 execute
方法不会返回 false,并且只有在查询数据库时才能检查这一点。
因此,在尝试运行第一个 UPDATE 查询之前,请使用新值创建一个变量或数组,一旦完成,请检查记录并查看它是否与新值匹配(如果匹配)继续运行剩余的查询。
关于php - 仅当字段为空时更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51567781/