2017-01-09 1 views
0

Ich rufe Funktion von URL und ich erhalte Fehler Anruf zu einer Mitgliedsfunktion query() auf einem Nicht-Objekt in dieser Linie ($result =$conn->query($sql);). Meine Datenbankverbindung ist perfekt. Ich erhalte Datensätze aus einer Tabelle und füge sie in die zweite Tabelle ein. Meine SQL Abfrage funktioniert. Würdest du mir dabei helfen?Wie aufgelöst werden Aufruf an eine Mitgliedsfunktion query() auf einem Nicht-Objekt in PHP?

URl:-http://domain.com/admin/delete.php?function=restore&res_id=7 

$id = $_GET['res_id']; //retrive id from URL 

include('db/connection.php'); 
switch($_GET['function']) { 
    case 'delete':delete();break; 
    case 'restore':restore();break; 
    default : redirect('index.php'); 
} 

function restore(){ 
    $sql="INSERT INTO request(Id, Name, Email, Mobile_no) SELECT Id, Name, Email, Mobile_no FROM trash WHERE Id=$id"; 
    $result =$conn->query($sql); 
$delete="DELETE FROM trash WHERE Id='$id'"; 
    if ($conn->query($delete) === TRUE) { 
     header('Location:dashboard.php?submitted=1'); 
    } else { 
     echo "Error deleting record: " . $conn->error; 
    } 
} 
+0

verwenden Sie die mysqli_connect-Funktion? –

+0

Danke für die Antwort Mr.Didar, Bitte überprüfe meine Verbindung, $ conn = new mysqli ($ Servername, $ Benutzername, $ Passwort, $ DBName); –

+0

übergeben $ conn Variable zur Wiederherstellung der Funktion wie wiederherstellen ($ conn) und Funktion wiederherstellen() {Funktion wiederherstellen ($ conn) {... hoffe, es wird Ihnen helfen –

Antwort

0

Pass $ conn variable Funktion zB

wiederherstellen ($ conn)

und Änderungsfunktion

Restore-Funktion() {

zu

Funktion wiederherzustellen Wiederherstellen ($ conn) {

und

Fall 'wiederherstellen': restore(); Pause;

zu

Fall 'wiederherstellen': Wiederherstellung ($ conn); break;

... hoffe, es wird Ihnen helfen

Unterhalb der aktualisierten Code ist

URl:-http://domain.com/admin/delete.php?function=restore&res_id=7 

$id = $_GET['res_id']; //retrive id from URL 

include('db/connection.php'); 
switch($_GET['function']) { 
    case 'delete':delete();break; 
    case 'restore':restore($conn);break; //case 'restore':restore();break; 
    default : redirect('index.php'); 
} 

function restore($conn){ //function restore(){ 
    $sql="INSERT INTO request(Id, Name, Email, Mobile_no) SELECT Id, Name, Email, Mobile_no FROM trash WHERE Id=$id"; 
    $result =$conn->query($sql); 
    if ($conn->query($delete) === TRUE) { 
     header('Location:dashboard.php?submitted=1'); 
    } else { 
     echo "Error deleting record: " . $conn->error; 
    } 
} 

Auch

$ sql = "INTO Anfrage (ID, Name, E-Mail, Mobile_no) INSERT ändern SELECT ID, Name, E-Mail, Mobile_no FROM Papierkorb WHERE Id = $ id ";

mit

$ sql = "INTO Anfrage INSERT (Id, Name, Email, Mobile_no) SELECT ID, Name, E-Mail, Mobile_no FROM Müll WHERE Id =". (int) $ _ GET ['res_id'];

+0

Danke für die Antwort Mr.Aamir, Fehler geht aus, aber innerhalb einer Funktion funktioniert meine Abfrage nicht. –

+0

Kühl !!! jetzt geht es. Ich habe $ id = $ _GET ['res_id'] hinzugefügt; Inside Funktion, die Sie mir vorgeschlagen und perfekt funktioniert. Vielen Dank für Ihre Hilfe. Upvote von meiner Seite –

1

Hoffe das löst Ihr Problem.

<?php 
$conn = new mysqli('localhost', 'root', '', 'stakcoverflow'); 

/* 
* This is the "official" OO way to do it, 
* BUT $connect_error was broken until PHP 5.2.9 and 5.3.0. 
*/ 
if ($conn->connect_error) { 
    die('Connect Error (' . $conn->connect_errno . ') ' 
      . $conn->connect_error); 
} 

/* 
* Use this instead of $connect_error if you need to ensure 
* compatibility with PHP versions prior to 5.2.9 and 5.3.0. 
*/ 
if (mysqli_connect_error()) { 
    die('Connect Error (' . mysqli_connect_errno() . ') ' 
      . mysqli_connect_error()); 
} 

//echo 'Success... ' . $conn->host_info . "\n"; 

function restore($conn){ //function restore(){ 
    $id = 1; 
    echo $sql="INSERT INTO request(Id, Name, Email, Mobile_no) SELECT Id, Name, Email, Mobile_no FROM trash WHERE Id=".$id.""; 
    $result = $conn->query($sql); 
} 

if(restore($conn)) 
{ 
    echo "Success"; 
}; 

$conn->close(); 
+0

Ihr Problem ist lösen oder nicht bitte lass es mich wissen. Danke –

+0

Danke für Hilfe Mr.Didar, aber ich benutze Funktion mit Schalterkasten –

+0

Okay, Verwenden der Funktion ist gut. Dann können Sie es anrufen, wie oft Sie es brauchen. Wenn meine Bemühungen Ihnen ein wenig geholfen haben, dann geben Sie mir bitte eine Stimme. Danke –

Verwandte Themen