2016-03-29 18 views
1

Ich weiß, dass diese Frage schon einmal gestellt wurde, aber es tut mir sehr leid, dass ich das nicht verstehen konnte, da ich neu bei Javascript bin. Ich habe diesen CodeFataler Fehler Aufruf zu undefinierter Funktion mysql_connect()

if ($_SERVER['REQUEST_METHOD'] == 'POST' && $_POST['formid'] == 'form2') 
{ 
    $username = $_POST['username']; 
     $email = $_POST['email']; 
     $upass = $_POST['password']; 
    $mysql_server = 'localhost'; 
    $mysql_database = 'register'; 
    $mysql_table = 'users'; 
    $mysql_username = 'root'; 
     $mysql_password = ''; 

$db = mysql_connect($mysql_server, $mysql_username, $mysql_password, $mysql_database) or die('Failed to connect to database server!<br>'.mysql_error()); 
mysql_select_db('register', $db) or die('Failed to select database<br>'.mysql_error()); 

if(mysql_query("INSERT INTO users(email,username,password) VALUES ('$username','$email','$upass')")) 
{ 
$msg="New record created successfully"; 
    ?> 
<html><body> 
alert("<?php echo $msg; ?>")</body></html> 
<?php 
mysql_close($db); 
header("location: home.php"); 
} 
    else 
{ 
$msg="Error: " . $sql . "<br>" ; 
} 
    exit; 
} 

Es gibt mir fatalen Fehler Aufruf an nicht definierte Funktion mysql_connect()

las ich dann, dass mysql_connect() nicht auf allen Systemen funktioniert, so dass wir auch mysqli_connect() nutzen können.
I ersetzt dann alle mysql mit mysqli aber jetzt habe ich diese beiden Warnungen bin immer

Warnung: erwartet mysqli_select_db() Parameter 1 mysqli zu sein, string in C angegeben: \ xampp \ htdocs \ loginpage.php on line 19

Warning: mysqli_error() erwartet genau 1 Parameter, 0 in C angegeben: \ xampp \ htdocs \ loginpage.php auf Leitung 19 fehlgeschlagen Datenbank auszuwählen

I auch ein Video beobachtet hatte, in dem Das wurde gesagt wir sollten eine Datei namens php.ini finden und extension_dir = "./" durch extension_dir = "C: \ xampp \ php \ ext" ersetzen aber als ich in die Datei schaute, fand ich beide Deklarationen. Bitte helfen Sie mir, was ich tun soll. Ich benutze Xampp Server.

Hier ist mein Mysqli Code

if ($_SERVER['REQUEST_METHOD'] == 'POST' && $_POST['formid'] == 'form2') 
    { 
    $username = $_POST['username']; 
    $email = $_POST['email']; 
    $upass = $_POST['password']; 
    $mysql_server = 'localhost'; 
    $mysql_database = 'register'; 
    $mysql_table = 'users'; 
    $mysql_username = 'root'; 
    $mysql_password = ''; 

     $db = mysqli_connect($mysql_server, $mysql_username, $mysql_password, $mysql_database) or die('Failed to connect to database server!<br>'.mysqli_connect_error()); 
     mysqli_select_db('register', $db) or die('Failed to select database<br>'.mysqli_connect_error()); 
     $sql="INSERT INTO users(email,username,password) VALUES ('$username','$email','$upass')"; 
     if (mysqli_query($conn, $sql)) 
    { 
     $msg="New record created successfully"; 

    ?> 
    <html><body> 
alert("<?php echo $msg; ?>")</body></html> 
<?php 
mysqli_close($db); 
header("location: loginpage.php"); 
    }  
    else 
     { 
    $msg="Error: " . $sql . "<br>" ; 
    } 
    exit; 
    } 
+1

Wenn Ihr erster Gedanke war, zu verwenden 'mysql_ * 'Funktionen, sollten Sie * sofort * stoppen und lernen über vorbereitete Aussagen wie PDO etc. –

+1

Wo ist Ihr Code mit dem' mysqli'? Es gibt einige Unterschiede zwischen 'mysql_' und' mysqli'. Sie sollten das Handbuch lesen, wenn Sie Probleme mit bestimmten Funktionen haben. Der 'mysqli_select_db'-Fehler bedeutet, dass Sie ihm eine Zeichenkette, nicht eine' mysqli'-Verbindung gesendet haben. Http://php.net/manual/en/mysqli.select-db.php – chris85

+0

wenn Sie von 'mysql' nach' mysqli' übertragen ist nicht so einfach wie das Hinzufügen des 'i' am Ende. Theres mehr müssen Sie tun. Können Sie Ihre ursprüngliche Frage bearbeiten und den Code hinzufügen, der Ihren mysqli-Code anzeigt? – CodeGodie

Antwort

0

Verwendung mysqli_connect() anstelle von mysql_connect()

mysql Funktion vorschlagen nicht und es ist schon

0

Verwenden mysqli_* Funktionen verzichten. Wie Sie gefunden haben mysql_* Funktionen wurden veraltet und sogar in neueren PHP fallen gelassen.

Die neuen Funktionen unterscheiden sich jedoch dahingehend, dass sie als ersten Parameter eine Datenbankverbindung erhalten. So soll der Anruf aussehen (oder tatsächlich können Sie den DB-Namen als vierte Parameter mysqli_connect Funktion übergeben):

mysqli_select_db($db, 'register') 

Und das gleiche für die Suche usw.

Verwandte Themen