将连接和查询从mysql重写为PDO [英] rewrite connection and query from mysql to PDO

查看:95
本文介绍了将连接和查询从mysql重写为PDO的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Been始终将MySQL与典型的mysql_querymysql_fetch_array一起用于PHP,但是现在我将移至PDO: Prepared Statement,因为这将是未来.

Been always used MySQL with PHP with the typical mysql_query or mysql_fetch_array but now i'm moving to PDO: Prepared Statement since it will be the future.

我是新手,并将其用于个人用途,所以我决定问您如何按照PDO: Prepared Statement

I'm newbie and using it for personal so i decide to ask you how to rewrite all this in rules of PDO: Prepared Statement

让我们假设我们有以下数据库users(id,name,job,number)

Let us suppose we've the following database users(id,name,job,number)

CREATE TABLE `users` (
  `id` bigint(20) unsigned NOT NULL auto_increment,
  `name` varchar(255) default '0',
  `job` varchar(255) default NULL,
  `number` varchar(255) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;

INSERT INTO `users` VALUES (1, 'John', 'Plumber', '555');
INSERT INTO `users` VALUES (2, 'Iva', 'Reporter', '666');
INSERT INTO `users` VALUES (3, 'Robert', 'Writer', '777');
INSERT INTO `users` VALUES (4, 'Irin', 'Writer', '888');

现在它们是正常的Mysql,所以任何人都可以用PDO: Prepared Statement

Now those are of normal Mysql so can anyone rewrite to be with PDO: Prepared Statement

1)连接

$DB["host"]   = "localhost";
$DB["dbName"] = "dbname";
$DB["user"]   = "dbuser";
$DB["pass"]   = "dbpass";
$link = mysql_connect($DB["host"],$DB["user"],$DB["pass"]) or die("Connection Failed");
mysql_select_db($DB["dbName"]);

2)从数据库精确输入中调用

$sql = "select * from users where job='Plumber'";
$reg = mysql_query($sql) or die(mysql_error());
$aee = mysql_fetch_array($reg);

echo $aee[name]; // should gives name John

3)从数据库结果中调用

$qry="select * from users where job='Writer'";
$result=mysql_query($qry) or die($qry);

if(mysql_num_rows($result)=='0'){

echo "No results"; // if not found any for this conditional job

}else{
while($line=mysql_fetch_array($result)){

echo $line[name]."<br>"; // should gives Robert <br> Irin

}
}

那确实对我有很大帮助,不鼓励我为insert,update,delete打开下一个新问题,因为我相信这对像我这样的新手很有帮助〜谢谢

That would really helps me a lot and discourage me to open next new question for insert,update,delete as i believe this helpful for newbies like me ~ Thanks

推荐答案

PDO手册是学习几乎所有情况下的PDO的绝佳资源.准备好的语句乍看起来似乎很奇怪而且很困难,但是一旦掌握了一些基础知识,您就会爱上它们.

The PDO manual is an excellent resource for learning PDO for almost any situation. Prepared statements may seem bizarre and hard at first, but you will come to love them once you master some basics...

PDO SELECT ...

$db = new PDO("mysql:host=localhost;dbname=db", "user", "password");

$query = "SELECT * FROM users WHERE name = " . $db->quote($name);

$result = $db->query($query);

while($row = $result->fetch(PDO::FETCH_ASSOC)) {
    print_r($row);
}

$result->closeCursor();

PDO INSERT ...

$query = $db->prepare("INSERT INTO users (first_name, last_name, email) VALUES (:fname, :lname, :email)");

// bind params
$query->bindParam(":fname", $firstName);
$query->bindParam(":lname", $lastName);
$query->bindParam(":email", $email);

// execute the query
$query->execute();

尽管有最后一个(简单的)示例,但我也鼓励您学习如何对

In spite of the last (simple) example, I would also encourage you to learn how to do INSERT queries for multiple values in one query. It's not only faster than doing many single INSERTs, it's also considered good practice.

这篇关于将连接和查询从mysql重写为PDO的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆