用PHP中的PDO替换/迁移旧的mysql语法

时间:2013-06-05 23:52:28

标签: php mysql pdo replace migrate

我正在学习如何从php访问mysql数据库,我看到了一个带有mysql命令的基本代码(下面),但我意识到那些语法很旧,最好使用mysqli或PDO。我对此感到厌恶,我认为PDO就是这样,所以我很感激有关如何将其迁移到PDO的任何帮助:

1)连接到mysql数据库

 include 'DB.php';
 $con = mysql_connect($host,$user,$pass);
 $dbs = mysql_select_db($databaseName, $con);

2)查询数据库

 $result = mysql_query("SELECT * FROM $tableName");          //query
 $array = mysql_fetch_row($result);                          //fetch result    

3)回声结果为json

 echo json_encode($array);

2 个答案:

答案 0 :(得分:1)

一步一步

第一

$dsn = "mysql:host=localhost;dbname=test;charset=utf8";
$opt = array(
    PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
);
$pdo = new PDO($dsn,'root','', $opt);

第二

$id  = 1;
$stm = $pdo->prepare("SELECT name FROM table WHERE id=?");
$stm->execute(array($id));
$name = $stm->fetchColumn();

将结果作为数组提取后,您可以将其编码为json

这来自stackoverflow PDO标记维基,您应该有一个look here

答案 1 :(得分:-1)

我发现这几乎与经典的mysql命令完全相同,现在在PDO中:

<code>
include 'DB.php';
$pdo = new PDO("mysql:host=$host;dbname=$databaseName;charset=utf8", $user, $pass);
$stm = $pdo->query("SELECT * from $tableName");
$array = $stm->fetch();
echo json_encode($array);
</code>