簡體   English   中英

PDO為mysql_num_rows准備了等效的語句

[英]PDO prepared equivalent statement for mysql_num_rows

我希望這個問題似乎不模糊,但是我正在將舊的mysql語句轉換為PDO准備的語句,並且已經搜索但找不到答案。 相當於$count=mysql_num_rows($stmt); 在PDO中? 我已經包含了我的代碼,因此您可以看到我在做什么,但是基本上我正在為用戶創建一個登錄頁面,我有一個使用SELECT的PDO語句來在數據庫中搜索匹配的用戶名和密碼行。 如果提供1,則它將$count變量增加為1,這樣我的IF語句為true。

CHECK_LOGIN.PHP

<?php
require 'functions.php';
require 'DB.php';
ob_start();

// Define $myusername and $mypassword 
$myusername=$_POST['myusername']; 
$mypassword =$_POST['mypassword'];
$mypassword = md5($_POST['mypassword']);

checkLogin($conn,$myusername,$mypassword,$stmt);

// Mysql_num_row is counting table row
$count=mysql_num_rows($stmt);

// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1){

// Register $myusername, $mypassword and redirect to file "login_success.php"
    session_start();
    $_SESSION['myusername'] = $myusername;
    session_is_registered("myusername");
    session_is_registered("mypassword"); 
    $myusername1 = $_SESSION['myusername'];
    //UPDATE LAST LOGIN IN DATABASE
    date_default_timezone_set('America/Chicago');
    $last_login = date('m/d/Y h:i:s a', time());
    lastLogin($conn,$myusername1,$last_login);
    header("location:form.php");


}
else {

echo "Wrong Username or Password";

}
ob_end_flush();
?>

FUNCTION.PHP中的函數

function checkLogin($conn,$myusername,$mypassword,$stmt){

$myusername = stripslashes($myusername);
$myusername = mysql_real_escape_string($myusername);
$stmt = $conn->prepare('SELECT * FROM `CLL_users` WHERE `user_name`=:myusername AND `password`=:mypassword');
$stmt->execute(array(':myusername' => $myusername, ':mypassword' => $mypassword));
}

從此處檢查示例2: PDOStatement :: rowCount

對於大多數數據庫,PDOStatement :: rowCount()不會返回受SELECT語句影響的行數。 而是使用PDO :: query()發出與所要SELECT語句相同的謂詞的SELECT COUNT(*)語句,然后使用PDOStatement :: fetchColumn()檢索將返回的行數。 然后,您的應用程序可以執行正確的操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM