2017-08-03 19 views
-2

Dies ist meine Codierung zum Löschen einer Zeile aus einer PHP-Tabelle.Fehler: Aufruf zu undefinierter Funktion

<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> 

Dies gibt mir den Fehler Aufruf zu undefined Funktion mysql_multiquery(). Kennt jemand den Grund?

+0

Weil diese Funktion nicht existiert? Ps.s. Sie können mysql_ * und mysqli_ * nicht mischen und abgleichen. –

+0

try 'mysqli_multi_query' statt –

+0

eine JavaScript-Funktion kann nicht direkt in PHP aufgerufen werden, es ist nur Text für ihn (PHP führt aus, was in' Kaddath

Antwort

1

1.: Weil Ihre Verpackung PHP-Code in <script> Tag .so php wird nicht analysieren, dass function so ist es, dass Call to undefined function werfen.

2nd: Keine Notwendigkeit diese Zeile $sql = mysql_multiquery($sql,$dbcon);, weil in der nächsten Zeile Ihre Ausführung mysqli multi query. $mysqli->multi_query($sql)

+0

Es gibt mir den folgenden Fehler Hinweis: Undefinierte Variable: mysqli in C: \ xampp \ htdocs \ OSS_Fault_Mgt \ assignRecord.php in Zeile 10 – sj111

+0

'$ mysqli' ist nicht Ihre Verbindung' Objekt'? @ sj111 .show Sie 'DB_connection.php' auch Code – JYoThI

+0

sj111

0

Sie können PHP-Funktionen nicht innerhalb von Skript-Tags schreiben. PHP erkennt das nicht. Wenn Sie dann mysqli_multi_query verwenden mehrere Abfrage ausführen möchten

$sql = mysqli_multi_query($sql,$dbcon); 
0
  • Wrapping PHP-Code in <script> Tags macht keinen Sinn. Es wird von PHP nicht gelesen.
  • Ihre Funktion ist trotzdem nutzlos, da Sie mysql_multi_query in Ihrer Bedingung in der nächsten Zeile aufrufen.
  • mysql_* Funktionen sollten nicht verwendet werden, sie sind unsicher. Sie werden seit einem Jahrzehnt nicht mehr verwendet, sind seit PHP5.6 veraltet und seit PHP7.0 entfernt worden und haben Ihren gesamten Code dem Risiko einer SQL-Injection ausgesetzt. Verwenden Sie stattdessen PDO.
Verwandte Themen