[英]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.