$sql = "INSERT INTO users (`indexno`, email, name, day) "
. "VALUES ('$indexno', '$email', '$username', '$dday');";
$sql = "update countd set countd = countd + 1 where day = 'monday'";
仅执行代码的底行。当我删除底行时,执行顶行没有问题。如果可以的话,我应该将这两行都写在同一个SQL变量中吗?谢谢
答案 0 :(得分:0)
将两个$ sql分别作为$ sql1和$ sql2,然后分别执行。
这里您要在第二条语句中重置$ sql的值。
答案 1 :(得分:-1)
您实际上在执行变量之前重新分配了变量。
您有几种解决问题的方法
创建两个单独的变量:$ sqlInsert和$ sqlUpdate,并在不同的变量内给出不同的语句
使用您的语句创建一个数组
第一个解决方案
$sqlInsert = "INSERT INTO users (`indexno`, email, name, day) "
. "VALUES ('$indexno', '$email', '$username', '$dday');";
$sqlUpdate = "update countd set countd = countd + 1 where day = 'monday'";
$mysql->request($sqlInsert);
$mysql->request($sqlUpdate);
第二个解决方案
$sqlStatements = [
"INSERT INTO users (`indexno`, email, name, day) . "VALUES ('$indexno', '$email', '$username', '$dday')",
"update countd set countd = countd + 1 where day = 'monday'"
]
foreach($sqlStatements as $sqlStatement) {
$mysql->request($sqlStatement);
}
最后,请小心在可能会遇到sql注入攻击的sql语句中提供变量
答案 2 :(得分:-1)
分别使用不同的名称制作两个$ sql,然后执行底线。
我认为没有发现问题。