2017-04-16 3 views
0

Ich bin ein veraltet Fehler mit dem folgenden Code bekommenmysql verbinden veraltet immer Fehler

require 'dbconfig.php'; 
function checkuser($fuid,$ffname,$femail){ 
     $check = mysql_query("select * from Users where Fuid='$fuid'"); 
    $check = mysql_num_rows($check); 
    if (empty($check)) { // if new user . Insert a new record  
    $query = "INSERT INTO Users (Fuid,Ffname,Femail) VALUES ('$fuid','$ffname','$femail')"; 
    mysql_query($query);  
    } else { // If Returned user . update the user record  
    $query = "UPDATE Users SET Ffname='$ffname', Femail='$femail' where Fuid='$fuid'"; 
    mysql_query($query); 
    } 
} 

aber jedes Mal wenn ich versuche mysqli zu verwenden, erhalte ich einen Fehler

Warning: Cannot modify header information - headers already sent by 

, was soll ich tun?

+0

Ihren Code korrigieren? Das wäre der erste Schritt. Es gibt absolut keinen Grund, dass der Wechsel von mysql_ zu mysqli_ Ihnen Header-Fehler geben sollte, es sei denn, Sie haben Fehler vor einem Header ausgegeben - übrigens, nichts in dem bereitgestellten Code zeigt Header-Informationen, daher ist es nutzlos für uns, durchzusehen. Die direkte Änderung von mysql_ zu mysqli_ wird auch dem wirklichen Problem nicht helfen, das sind nicht vorbereitete Abfragen. Lesen Sie "vorbereitete Abfragen mit mysqli", machen Sie eine anständige Fehlerbehandlung und/oder schreiben Sie den vollständigen Code hier. – junkfoodjunkie

+0

Da mysql_ * in PHP 5.5 veraltet ist (siehe [PHP doc] (http://php.net/manual/en/function.mysql-connect.php)) sollten Sie ** wirklich ** die Verwendung von [PPS : Vorbereitete parametrisierte Anweisungen] (http://php.net/manual/en/mysqli.quickstart.prepared-statements.php). Dies wird helfen [SQL-Injection verhindern] (http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php). Aber das hat nichts mit der 'Warnung: Header bereits gesendet ' – OldPadawan

+0

' mysqli' oder 'mysql' zu tun? Fügen Sie den Hinweis und Ihren tatsächlichen Code ein, wenn Sie 'mysqli' verwenden. Dieser Code verwendet 'mysql_'. – chris85

Antwort

0

Warnung. Diese Erweiterung war in PHP 5.5.0 veraltet und wurde in PHP 7.0.0 entfernt. Stattdessen sollte die MySQLi oder PDO_MySQL-Erweiterung verwendet werden. Siehe auch MySQL: Auswahl eines API-Leitfadens und zugehörige FAQ für weitere Informationen. Alternativen zu dieser Funktion sind:

mysqli_connect() PDO :: __ construct()

http://php.net/manual/en/function.mysql-connect.php

Kann nicht modify header information - Dieser Fehler hat nichts mit Datenbanken zu tun.

+0

Der Fehlerhinweis wird ausgegeben. Also 'Dieser Fehler hat nichts mit Datenbanken zu tun. 'Ist nicht ganz richtig. – chris85