2016-09-14 1 views
4

Wenn ich meinen PHP Code unten i ausführen bekommt Fatal error und ich bin nicht sicher, wie es zu lösen.Call to undefined Funktion mysql_query() mit Anmeldung

Vielen Dank für Ihre Hilfe

Der Fehler

PHP Fatal error: Uncaught Error: Call to undefined function mysql_query() in /Applications/MAMP/htdocs/lprapp/config.php:23 Stack trace:#0 {main} thrown in /Applications/MAMP/htdocs/lprapp/config.php on line 23

-Code

<?php 

    $user = 'root'; 
    $password = 'root'; 
    $db = 'inventory'; 
    $host = 'localhost'; 
    $port = 8888; 

    $link = mysqli_init(); 
    $success = mysqli_real_connect(
     $link, 
     $host, 
     $user, 
     $password, 
     $db, 
     $port 
    ); 

    ?> 
    <?php 
    $username = $_POST['username']; 
    $password = $_POST['password']; 
    $sql = mysql_query("SELECT * FROM login WHERE username = '".$_POST['username']."' and password = '".md5($_POST['password'])."'"); 
    $row = mysql_num_rows($sql); 
    if($rom > 0) 
    { 
     session_start(); 
     $_SESSION['username'] = $_POST['username']; 
     $_SESSION['password'] = $_POST['password']; 
     echo "login done"; 
    }else { 
     echo "fail login "; 
    } 

    ?> 
+2

obligatorische Beratung: Don‘ t verwende mysql. Aktualisieren Sie zumindest auf mysqli. Die Umgebung, in der Sie gerade sind, könnte mysqli bereits verwenden. also der Fehler. – Carcigenicate

+1

Sie können mysqli_ * und mysql_ * APIs nicht mischen und abgleichen –

+0

@JonStirling Oh, Sie haben Recht. Ich habe die obere Hälfte seines Codes verpasst. – Carcigenicate

Antwort

10

Sie mysql mischen und mysqli

ändern diese Zeilen:

$sql = mysql_query("SELECT * FROM login WHERE username = '".$_POST['username']."' and password = '".md5($_POST['password'])."'"); 
$row = mysql_num_rows($sql); 

zu

$sql = mysqli_query($success, "SELECT * FROM login WHERE username = '".$_POST['username']."' and password = '".md5($_POST['password'])."'"); 
$row = mysqli_num_rows($sql); 
1

Sie mischen die veraltete mysql Erweiterung mit mysqli.

Probieren Sie etwas wie:

$sql = mysqli_query($success, "SELECT * FROM login WHERE username = '".$_POST['username']."' and password = '".md5($_POST['password'])."'"); 
$row = mysqli_num_rows($sql); 
0

Ich würde empfehlen, dass die Verwendung von mysqli_ starten() und stop mysql_ mit()

Überprüfen Sie die folgende Seite: LINK

Warning This extension was deprecated in PHP 5.5.0, and it was removed in PHP 7.0.0. Instead, the MySQLi or PDO_MySQL extension should be used. See also MySQL: choosing an API guide and related FAQ for more information. Alternatives to this function include: mysqli_affected_rows() PDOStatement::rowCount()

Try und verwenden mysqli_() Oder PDO

Verwandte Themen