2016-07-21 43 views
1

我想執行mysql_qry1也,我應該怎麼做,直到現在我的代碼工作正常,但我想執行第二個查詢也(mysql_qry1),請幫助。在一個php文件中的多個查詢,我試圖寫代碼,但我沒有得到它

<?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

爲什麼用戶喜歡用戶名和密碼比較?爲什麼你在一個語句中編寫select和insert查詢?這似乎很奇怪。 – naf4me

+0

基本上它是一個登錄用戶名,所以如果用戶得到正確的用戶名和密碼,那麼我想把他的用戶名和狀態變量的值放在一個不同的表中 –

+0

@HemantVyas你的查詢似乎丟失了')聲明。 – Prashanth

回答

1

你的SQL是最危險的,請嘗試重新寫一個:

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

我不敢肯定什麼是我們conn.php,這裏是更新的例子之一( 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); 

好的,你的conn.php是使用mysqli_。請參閱本頁面的幫助: http://php.net/manual/en/mysqli-stmt.bind-param.php

和上面的答案更改爲:前

$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'; 
} 

我沒有用mysqli的,所以還不太熟悉,甚至php.net是很難找到的一些文檔關於它。請谷歌howto使用:mysqli_stmt_fetch()並用適當的代碼替換它

爲什麼不更新你的conn.php使用PDO? (請注意,您可能需要更新所有其他頁面以及調用此文件的其他頁面):

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

,它只是數據庫連接。 「 」<?php $ db_name =「xxx」; $ mysql_username =「xxx」; $ mysql_password =「xxx」; $ server_name =「xxxx」; $ conn = mysqli_connect($ server_name,$ mysql_username,$ mysql_password,$ db_name); ?>「 我需要改變這裏的任何東西來工作的東西? –

+0

你好代碼不工作,我想做的事情是在評論(在我的代碼),是PDO :: FETCH_NUM工作? –

+0

5-10頁正在調用這個conn.php,所以我需要堅持msqli,如果有一種方法,其中使用msqli我們可以做我的任務將是偉大的,否則我需要堅持與PDO :( –

相關問題