仅执行底线

时间:2018-12-15 08:49:12

标签: php mysql

        $sql = "INSERT INTO users (`indexno`, email, name, day) "
    . "VALUES ('$indexno', '$email', '$username', '$dday');";   
        $sql = "update countd set countd = countd + 1 where day = 'monday'";    

仅执行代码的底行。当我删除底行时,执行顶行没有问题。如果可以的话,我应该将这两行都写在同一个SQL变量中吗?谢谢

3 个答案:

答案 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,然后执行底线。

我认为没有发现问题。