2016-07-21 3 views
1

Ich möchte mysql_qry1 auch ausführen, wie soll ich es tun, bis jetzt mein Code funktioniert gut, aber ich möchte die zweite ausführen Abfrage auch (mysql_qry1), bitte helfen.mehrere Abfragen in einer PHP-Datei, ich habe versucht, den Code zu schreiben, aber ich bekomme es nicht fertig

<?php 
require "conn.php"; 
$status=1; 
$user_name = $_POST["user"]; 
$user_pass = $_POST["pass"]; 
$mysql_qry = "select * from tbl_client where username like '$user_name' and password like '$user_pass'"; 
$mysql_qry1 = "insert into login_status (username, status) values ('$user_name','$status)"; 
$result = mysqli_query($conn , $mysql_qry); 
if(mysqli_num_rows($result)==1) { 
echo "login success , Hello"; 
} 
else { 
echo "login failed"; 
} 
$conn->close(); 

?> 
+1

Warum haben Sie wie für den Benutzernamen und das Passwort Vergleich verwendet? Und warum haben Sie eine Abfrage geschrieben und in eine Anweisung eingefügt? Es scheint komisch. – naf4me

+0

im Grunde ist es ein Login-Benutzername, wenn der Benutzer den richtigen Benutzernamen und das Passwort bekommt, dann möchte ich einige Werte wie sein Benutzername und Status-Variable in eine andere Tabelle setzen –

+0

@HemantVyas Ihre Abfrage scheint am Ende der einfügen zu fehlen) Erklärung. – Prashanth

Antwort

1

Ihre SQL ist eine der gefährlichsten, versuchen Sie Schreib erneut an:

//$mysql_qry = "select * from tbl_client where username like '$user_name' and password like '$user_pass'"; 

ich nicht sicher, was in unserem conn.php ist, hier ist ein Beispiel zu aktualisieren (PDO):

$sql = 'select 1 from tbl_client where username = :user and password = :pass'; 
$sth = $dbL->prepare($sql); 
$sth->execute(':user' => $user_name, ':pass' => $user_pass); 
$row = $sth->fetch(PDO::FETCH_NUM); 
if ($row[0]) { 
    echo 'Login OK'; 
} else { 
    echo 'Login Failed'; 
} 

$sql = 'insert into login_status (username, status) values (:user, :status)'; 
$sth = $dbL->prepare($sql); 
$sth->execute(':user' => $user_name, ':status' => $status); 

OK, so verwendet Ihre conn.php mysqli_. Bitte beziehen Sie sich auf diese Seite Hilfe: http://php.net/manual/en/mysqli-stmt.bind-param.php

Und oben Antwort ändern:

$sql = 'select 1 from tbl_client where username = ? and password = ?'; 
$stmt = mysqli_prepare($conn, $sql); 
mysqli_stmt_bind_param($stmt, 'ss', $user_name, $user_pass); 
mysqli_stmt_execute($stmt); 
$row = mysqli_stmt_fetch(); 
if ($row[0]) { 
    echo 'Login OK'; 
} else { 
    echo 'Login Failed'; 
} 

ich Mysqli noch nicht verwendet haben, so nicht ganz vertraut, auch php.net ist hart, einige Dokumente, um herauszufinden, darüber. Bitte google howto verwenden: mysqli_stmt_fetch() und ersetzen Sie es mit dem richtigen Code

Warum nicht aktualisieren Sie Ihre conn.php für die Verwendung von PDO? (Seien Sie vorsichtig, Sie müssen möglicherweise auch alle anderen Seiten aktualisieren, die diese Datei aufrufen):

// conn.php 
$pdo = 'mysql:host=' . $server_name . ';dbname=' . $db_name; 
$dbL = new PDO($pdo, $mysql_username, $mysql_password); 
// conn.php 
$pdo = 'mysql:host=' . $server_name . ';dbname=' . $db_name; 
$dbL = new PDO($pdo, $mysql_username, $mysql_password); 
+0

in meiner conn.php überprüfen, es ist nur die Datenbankverbindung. " " “ Muss ich hier irgend etwas ändern, um die Dinge zu arbeiten? –

+0

Hallo der Code nicht funktioniert, ich die Dinge tun wollen, die (in meinem Code) in den Kommentaren sind, ist PDO :: FETCH_NUM Arbeits ? –

+0

5-10 Seiten nennen diese conn.php, also muss ich bei msqli bleiben, wenn es eine Möglichkeit gibt, msqli zu verwenden, können wir meine Aufgabe erledigen, die großartig wäre, sonst muss ich bei PDO bleiben :( –