2016-05-01 2 views
1

Ich habe meinen Code mit vorbereiteten Anweisungen bearbeitet (ich habe sie vorher nicht benutzt). Ich bekomme einen Fehler "Aufruf an eine Member-Funktion bind_param() für ein Nicht-Objekt". Ich habe diesen Fehler gegoogelt, und ich habe Ursache gefunden - Fehler wird verursacht, wenn die Abfrage einen Syntaxfehler hat. Ich suche die letzten 10 Minuten in der Abfrage und ich kann keinen Syntaxfehler finden. Kann mir jemand helfen? Vielen Dank!Funktion bind_param() für ein Nicht-Objekt | PHP MySQL

// QUERY BEFORE 
$_hsync_statment->bind_param("sisssss", $_hsync_ime, $_hsync_id, $_hsync_nista, $_hsync_nista, $_hsync_mail, $_hsync_datum, $_hsync_vrijeme); 
if(!$_hsync_statment->execute()) $_hsync_reg_status = -1; 

// POVEČAVA BROJ REGISTRIRANIH RAČUNA 
$_hsync_statment = $_hsync_konekcija->prepare("UPDATE $_hsync_srv SET Clanova = ?"); 
$_hsync_statment->bind_param("i", $_hsync_id + 1); // THIS LINE 
if(!$_hsync_statment->execute()) $_hsync_reg_status = -1; 

Ich habe versucht, jede Anweisung zu schließen, nachdem es ausgeführt wird. Das hilft nicht.

+2

Was ist '$ _hsync_srv'? – Chris

+2

und Sie erkennen, dass Sie Ihre gesamte db ohne eine WHERE-Klausel aktualisieren werden –

+1

Zeigen Sie, wie definieren Sie $ _hsync_statement – scaisEdge

Antwort

5

Also, was ist los mit

$_hsync_statment->bind_param("i", $_hsync_id + 1); // THIS LINE 

Die Tatsache, dass _hsync_id $ ist eine Variable, die einen int hält. wenn Sie 1 zu int hinzufügen. Es erzeugt ein int, das für bind_param nicht akzeptabel ist. bind_param erwartet ein Objekt. Versuchen Sie folgendes:

$_hsplus = $_hsync_id + 1; 
$_hsync_statment->bind_param("i", $_hsplus); // THIS LINE 

So, jetzt, warum ich zwei downvotes bekommen, wenn die manual clealy sagt:

Beachten Sie, dass mysqli_stmt_bind_param() Parameter erfordert von Referenz übergeben werden, während

+1

Ich verstehe die Downvoters nicht. Sie haben einen Punkt und meine Stimme. – trincot

+0

Ich habe das zuerst versucht. Ich glaube nicht, dass PHP eine dumme Sprache ist, also kann er var nicht mit einer addieren. – SilvioCro

+1

@SilvioCro: Es geht um die [Dokumentation] (http://php.net/manual/en/mysqli-stmt.bind-param.php) sagen * "Binds Variablen ..." *. Ein Ausdruck ist * nicht * eine Variable. – trincot

2

Die Fehlermeldung Call to a member function bind_param() für ein Nicht-Objekt ... bedeutet, dass Sie das Objekt $ _hsync_statment vor dem Aufruf von bind_params() nicht korrekt instanziiert haben. haben die DB-Verbindung zu der $ _hsync_statement $ _hsync_statment = $ db-> stmt_init();

+0

Ich habe '$' vor jeder var (Verbindung, Anweisung ...). – SilvioCro

+0

Ich habe falschen Feldnamen geschrieben. Vielen Dank! – SilvioCro

Verwandte Themen