【问题标题】:replace/migrate old mysql syntax with PDO in PHP在 PHP 中用 PDO 替换/迁移旧的 mysql 语法
【发布时间】:2013-06-05 23:52:27
【问题描述】:

我正在学习如何从 php 访问 mysql db,并且我看到了带有 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);

【问题讨论】:

  • 听起来你准备好了,试试看!
  • 真实代码示例还是人工草稿?如果是这样 - 你能发布一个你想翻译的真实代码示例吗?

标签: php mysql pdo replace migrate


【解决方案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标签wiki,你应该有一个look here

【讨论】:

  • 谢谢法比奥。我有助于理解。但是,我找到了一种更简单的方法来“等于”我给出的示例,而没有 $opt 部分。 $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);
  • @sergius 欢迎您,不要忘记接受答案以帮助将来遇到类似问题的人。要接受,您只需点击答案分数下方的绿色大勾号 (✔)
  • 哦,对不起,我不知道。我总是尝试“投票”,但系统不允许我这样做,因为我是新用户。我不知道这种可能性!谢谢。
【解决方案2】:

我发现这几乎完全等同于经典的 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>

【讨论】:

  • 这个例子在很多方面都很糟糕。但确实“等于”你使用旧 mysql 分机的错误方式。没有错误处理,没有保护,性能很差。
猜你喜欢
  • 2010-12-26
  • 2016-05-05
  • 1970-01-01
  • 2013-04-16
  • 2014-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-27
相关资源
最近更新 更多