繁体   English   中英

mysql_query 转换为 PDO 或 mysqli 寻找示例

[英]mysql_query convert to PDO or mysqli looking for an example

许多人因为仍在使用旧的“方法” mysql_query()而被钉在十字架上,而且我正在启动我的网站,这花了我 4 个月的时间完成,我希望它有最大的安全性。

所以我认为现在可能是摆脱旧习惯并开始使用新方法的最佳时机。

我已经浏览了一些教程,但我不得不承认,与 mysql_query() 相比,它看起来确实(非常)复杂

最好的学习方法可能是通过示例,所以我希望有人能够为我将以下示例更改为 PDO 和 MYSQLI 语句,以便我可以看到两者之间的区别。 如果可以包含简要说明,将不胜感激......

另外你推荐什么是最容易学的? Mysqli 或 PDO

$sql="select * from Multiple_Picks where event_id = '$matchId' and
                  pick='$winner' and
                 abs(score-$winScore) = (select min(abs(score-$winScore)) from Multiple_Picks 
                 where pick = '$winner' );";    

    $result = mysql_query($sql) or trigger_error(mysql_error()." in ".$sql);

    while($row = mysql_fetch_array($result)){
        //if(isset($row['member_nr'])){
            $winingMember = $row['member_nr'];
            $event = $row['event_id'];
            $pick = $row['pick'];
            $score = $row['score'];
            $tournament=$row['tournament'];
            $round=$row['round'];
}

谢谢阅读

这对你有帮助

使用 mysqli:

$con = mysqli_connect("localhost",$username,$password,$dbname);

$fetch=mysqli_query($con,'select * from Multiple_Picks where event_id = '$matchId' and
                  pick='$winner' and
                 abs(score-$winScore) = (select min(abs(score-$winScore)) from Multiple_Picks 
                 where pick = '$winner' );');
while( $row=mysqli_fetch_assoc($fetch))
{   
        $winingMember = $row['member_nr'];
            $event = $row['event_id'];
            $pick = $row['pick'];
            $score = $row['score'];
            $tournament=$row['tournament'];
            $round=$row['round'];
}

使用 PDO

<?php
/*** mysql hostname ***/
$hostname = 'localhost';

/*** mysql username ***/
$username = 'username';

/*** mysql password ***/
$password = 'password';

try {
    $dbh = new PDO("mysql:host=$hostname;dbname=animals", $username, $password);
    /*** echo a message saying we have connected ***/
    echo 'Connected to database<br />';

    /*** The SQL SELECT statement ***/
    $sql = "select * from Multiple_Picks where event_id = '$matchId' and
                  pick='$winner' and
                 abs(score-$winScore) = (select min(abs(score-$winScore)) from Multiple_Picks 
                 where pick = '$winner' );";

    /*** fetch into an PDOStatement object ***/
    $stmt = $dbh->query($sql);

    /*** echo number of columns ***/
    $result = $stmt->fetch(PDO::FETCH_ASSOC);

    /*** loop over the object directly ***/
    foreach($result as $key=>$val)
    {
    echo $key.' - '.$val.'<br />';
    }

    /*** close the database connection ***/
    $dbh = null;
}
catch(PDOException $e)
    {
    echo $e->getMessage();
    }
?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM