【问题标题】:I want to convert a MySQL query into PDO? [closed]我想将 MySQL 查询转换为 PDO? [关闭]
【发布时间】:2012-09-19 19:32:42
【问题描述】:

我需要将其转换为课程的 PDO 形式,但由于我对这一切都不熟悉,有人可以帮助我吗?我的教授声称每个功能都可以转换,但我在网上找不到任何可以帮助我的东西。

<?php
    // rnfunctions.php
    $dbhost = 'localhost';
    $dbname = 'social_local';
    $dbuser = 'root';
    $dbpass = 'root';
    $appname = "Social Networking Test Site";
    try
    {
        $dbh = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);
    }
    catch ( PDOException $e )
    {
        echo $e->getMessage();
    }

    function createTable ($name, $query)
    {
        if (tableExists($name)) {
            echo "Table '$name' already exists<br />";
        } else {
            queryMysql("CREATE TABLE $name($query)");
            echo "Table '$name' created<br />";
        }
    }

    function tableExists ($name)
    {
        $result = queryMysql("SHOW TABLES LIKE '$name'");
        return mysql_num_rows($result);
    }

    function queryMysql ($query)
    {
        $result = mysql_query($query) or die(mysql_error());
        return $result;
    }

    function destroySession ()
    {
        $_SESSION = array();
        if (session_id() != "" || isset($_COOKIE[session_name()])) {
            setcookie(session_name(), '', time() - 2592000, '/');
        }
        session_destroy();
    }

    function sanitizeString ($var)
    {
        $var = strip_tags($var);
        $var = htmlentities($var);
        $var = stripslashes($var);
        return $var;
    }

    function showProfile ($user)
    {
        if (file_exists("$user.jpg")) {
            echo "<img src='$user.jpg' border='1' align='left' />";
        }
        $result = queryMysql("SELECT * FROM rnprofiles WHERE user='$user'");
        if (mysql_num_rows($result)) {
            $row = mysql_fetch_row($result);
            echo stripslashes($row[1]) . "<br clear=left /><br />";
        }
    }
    ?>

【问题讨论】:

    标签: php mysql pdo


    【解决方案1】:

    您需要先实例化一个 PDO 类。然后学习 PDO 函数。

    $dbh = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME, DB_USER, DB_PASS);
    $stmt = $dbh->prepare($sql);
    $stmt->execute();
    return $stmt;
    

    使用$stmt-&gt;FetchAll() 之类的东西来获取结果。

    【讨论】:

    • 我已经做到了,我需要帮助的是如何将单个函数转换为 PDO 形式?我的教授说可以,但我在网上寻找的每一个资源都对我没有帮助
    • 这学期刚开始学,所以,不是真的
    • @EliasBaez 那么你在找什么?一段写得很好的使用 PDO 的代码,你可以一次又一次地为不同的 SQL 使用它
    【解决方案2】:

    这样的事情可能会对你有所帮助:

    $dbh = new PDO("mysql:host=localhost;dbname=yourBaseName", 'someLogin', 'somePassword');
    $dbh->prepare('SELECT login FROM members WHERE login=? AND password=?');
    $stm = $dbh->execute(array($login, $pass));
    if (($row = $stm->fetchObject())) {
        echo "You are loggued!";
        // stuffs with loggued user
    } else {
        echo "Invalid user or password";
        // login form again
    }
    

    【讨论】:

    • 感谢您的关注。帮助我的不仅仅是文档!
    猜你喜欢
    • 2021-01-19
    • 1970-01-01
    • 2023-03-30
    • 2021-12-29
    • 1970-01-01
    • 2021-06-20
    • 2014-09-04
    • 1970-01-01
    • 2014-03-02
    相关资源
    最近更新 更多