Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

पीडीओ पीडीओ के साथ चयन करें एक गैर-ऑब्जेक्ट त्रुटि पर सदस्य फ़ंक्शन को कॉल करें ()

इसके लिए काम करने के लिए, आपको यहां बताए गए वैश्विक चर दायरे का उपयोग करने की आवश्यकता है: http://php.net/manual/en/language.variables.scope.php

$mysql_user = "NotTelling";
$mysql_password = "DefinatelyNotThis";
try
{
    $dbh = new PDO("mysql:host=somehost;dbname=somename", $mysql_user, $mysql_password);
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $username = $_POST['username'];
    $inPword = $_POST['password'];
    $lat =  $_POST['lat'];
    $lon =  $_POST['lon'];

    $loggedin = "";
    $password_hash = "";
    $loggedinstatus = "";
    $pts = "";

    function getLoginInfo()
    {
        global $dbh, $username, $password_hash, $loggedinstatus, $pts;

        $sth = $dbh -> prepare('SELECT pword, loggedin, points FROM login WHERE uname = :uname');
        $sth->bindParam(':uname', $username, PDO::PARAM_STR);
        while($row = $sth->fetch(PDO::FETCH_ASSOC))
        {
            echo $row['pword'];
            echo $row['loggedin'];
            echo $row['points'];
        }
        $password_hash = $fetch['pword'];
        $loggedinstatus = $fetch['loggedin'];
        $pts = $fetch["points"];

        if($password_hash === null || $loggedinstatus === null || $pts === null)
        {
            die(json_encode(array("message" => "none")));
        }
        else
        {           
            return "more";
        }
    }

    function checkLoginCreds()
    {
        global $dbh, $inPword, $password_hash, $loggedinstatus, $username;

        if(crypt($inPword, $password_hash) === $password_hash)
        {
            switch($loggedinstatus)
            {
                case  "no":         
                    $sel = $dbh->prepare("UPDATE login SET loggedin='yes' WHERE uname = ?");
                    $sel->execute(array($username));
                    return "AllGood";
                    break;

                defaut:
                    return "alreadyin";
                    break;
            }
        }
        else
        {
            return "BadLogin";
        }
    }

    if(getLoginInfo() === "more")
    {
        echo json_encode(array("message" => checkLoginCreds()));
    }

    getLoginInfo();
}
catch(PDOException $e)
{
    echo $e->getMessage();
    file_put_contents('PDOErrors.txt', $e->getMessage(), FILE_APPEND);
}

लेकिन यह बहुत जल्दी गड़बड़ा सकता है।

मेरा सुझाव है कि आप अधिक मजबूत समाधान के लिए चर को एक सरणी में रखें या OOP का उपयोग करें:http ://php.net/manual/hi/language.oop5.php



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Yii CActiveDataProvider ऑब्जेक्ट पर पुनरावृति कैसे करें?

  2. PHP और MySQL डेटाबेस में ब्लॉग कैसे बनाये - DB डिज़ाइन

  3. MySQL InnoDB - लेन-देन के बारे में उलझन में

  4. PHPMyAdmin द्वारा बनाए गए डेटाबेस के माध्यम से C# के साथ MySQL कनेक्शन

  5. क्या डेटाबेस तालिका प्राथमिक कुंजी के बिना हो सकती है?