2017-08-03 161 views
-2

這是我從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()。 有誰知道原因?

+0

因爲該功能不存在?附:你不能混合和匹配mysql_ *和mysqli_ *。 –

+0

嘗試'mysqli_multi_query'代替 –

+0

javascript函數不能在PHP中直接調用,這是對他只是文本(PHP執行'<?php'標籤什麼的) – Kaddath

回答

1

1:由於<script>標籤。所以你的PHP包裝PHP代碼將無法解析function所以它拋出該Call to undefined function

第二:無需此行$sql = mysql_multiquery($sql,$dbcon);因爲在下一行的執行mysqli的multi query$mysqli->multi_query($sql)

+0

它給我下面的錯誤 注意:未定義的變量:mysqli的在C:\ XAMPP \ htdocs中\ OSS_Fault_Mgt \ assignRecord.php上線10 – sj111

+0

'$ mysqli'是不是你的連接'object'? @ sj111 .show你'DB_connection.php'代碼太 – JYoThI

+0

sj111

0

你不能寫PHP函數包腳本標記內。 PHP不認識。如果要執行多個查詢,然後使用mysqli_multi_query

$sql = mysqli_multi_query($sql,$dbcon); 
0
  • 包裝PHP代碼<script>標籤是沒有意義的。它不會被PHP讀取。
  • 你的功能是沒用的,因爲仍然您在非常下一行調用mysql_multi_query在你的病情。
  • mysql_*功能不應該使用,它們是不安全的。他們所使用的是十年不鼓勵的,自PHP5.6開始棄用,自PHP7.0以後就被刪除,並將整個代碼置於SQL注入風險之中。改爲使用PDO
相關問題