错误:调用未定义的函数

时间:2017-08-03 09:40:48

标签: php mysql

这是我从php表中删除行的编码。

<html>
    <?php
        include("DBConfig/Db_connection.php");  
        if(isset($_POST['Reassign'])){
            if(isset($_POST['checkbox']))
            {
                $id = $_POST['Reassign'];
                $id1 = $_POST['checkbox'];
                $sql = "INSERT INTO archived SELECT * FROM faults WHERE id='$id1';";
                $sql .=  "DELETE FROM faults WHERE id='$id1'; "; 
                $sql = mysql_multiquery($sql,$dbcon);
                if (!$mysqli->multi_query($sql)) {
                    echo "Multi query failed: (" . $mysqli->errno . ") " . $mysqli->error;
                }
                else{
                    echo "Assigned successfully";
                }           
            }       
        }

        ?>

    <script>
    function mysql_multiquery($queries,$conn)
    {
        $queries = explode(";", $queries);
        foreach ($queries as $query)
            $query = mysql_query(trim($query),$conn);

    }
    </script>   
    </html>

这给了我对未定义函数mysql_multiquery()的错误调用。 有谁知道原因?

3 个答案:

答案 0 :(得分:1)

1st:因为您在<script>标记.so php中包装php代码不会解析function所以它会抛出Call to undefined function

第二名:不需要这一行$sql = mysql_multiquery($sql,$dbcon);,因为在下一行你执行的mysqli multi query$mysqli->multi_query($sql)

答案 1 :(得分:0)

你不能在脚本标签内写php功能。 PHP不承认这一点。如果要执行多个查询,请使用mysqli_multi_query

$sql = mysqli_multi_query($sql,$dbcon);

答案 2 :(得分:0)

  • <script>标记中包装PHP代码毫无意义。它不会被PHP读取。
  • 你的功能是无用的,因为你在下一行的条件下调用了mysql_multi_query。
  • mysql_*函数不应该被使用,它们是不安全的。他们的使用被劝阻了十年,自PHP5.6以来已被弃用,并且从PHP7.0开始被删除并且使您的整个代码面临SQL注入的风险。请改用PDO