【问题标题】:run insert query after select query mysql in php在 php 中选择查询 mysql 后运行插入查询
【发布时间】:2016-07-08 07:08:05
【问题描述】:

我正在尝试在选择查询返回 0(未找到原始数据)后插入到多表中

代码:

<?php
    if ($_POST["displayid"] == TRUE) {

        $sqlid  = "SELECT * FROM doc1 WHERE idnum ='$pidnum' AND stats='$ok'";
        $result = mysqli_query($conn, $sqlid);
        if (mysqli_num_rows($result) > 0) {
            $sqlup = "UPDATE doc1 SET  m_phone='$pm_phone', seen='$dataseen' WHERE  idnum ='$pidnum'";
            mysqli_query($conn, $sqlup);
            $found = 1;
        } else {
            $found   = 0;
            $sqlfail = "INSERT INTO fail(fname,lname,tname,funame,idnum,m_phone,reg_date)
VALUES ('$pfname','$plname','$ptname','$pfuname','$pidnum','$pm_phone','$todaydate')";
            $conn->query($sqlfail)
        }
    }
?>

【问题讨论】:

  • 做一些调试作为回显查询echo sqlfail;,然后直接复制粘贴到mysql上,如果有错误等,你可能会得到一些信息。
  • 对查询使用参数而不是连接字符串,这样可以避免这里出现的缺少引号的问题,并且代码不会那么不安全
  • 为您的参数提供完整的 sql create 语句和值

标签: php mysql


【解决方案1】:

使用此代码:

  $sqlfail = "INSERT INTO  fail(fname,lname,tname,funame,idnum,m_phone,reg_date)
VALUES ('".$pfname."','".$plname."','".$ptname."','".$pfuname."','".$pidnum."','".$pm_phone."','".$todaydate."')";

对更新命令也进行类似的更改

【讨论】:

  • 颜色表示一些语法错误,顺便说一句,你的意图不会改变。
【解决方案2】:

你实际上有一个错误

$conn->query($sqlfail) 

应该是

$conn->query($sqlfail);  

【讨论】:

  • 已修复此问题但仍未插入
  • 为您的参数提供完整的 sql create 语句和值。需要在那里进行一些调试
【解决方案3】:
AND stats='$ok'";

我看不到这个名字的变量我想你的意思是AND stats='ok'";

【讨论】:

    猜你喜欢
    • 2018-09-01
    • 2014-09-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-07
    相关资源
    最近更新 更多