如何将mysql查询写入PDO

时间:2013-07-10 01:44:55

标签: php mysql pdo

感谢您是否可以帮我将下面的mysql代码写入PDO语句。

     $sql  = "SELECT * FROM node WHERE node_name='$nodename'";

     $result = mysql_query($sql);

当我阅读PDO :: query Manual时,我发现了这段代码

      <?php
      $connection = new pdo("sqlite:file.sq3");
      $query="SELECT * FROM table";
      $result = $connection->query($query);
      $row = $result->fetch(PDO::FETCH_ASSOC);
      print_r($row);
      ?>

“sqlite:file.sq3”和“(PDO :: FETCH_ASSOC)”的功能是什么

3 个答案:

答案 0 :(得分:0)

该行指向您的sql文件,它没有任何功能。它会打开一个PDO连接,您可以进一步查询。

$connection = new pdo("sqlite:/path/to/sql/file.sq3");

PDO::FETCH_ASSOC告诉函数fetch()从表中提取关联数组。

答案 1 :(得分:0)

你连接到这样的数据库:

try {
$db = new PDO("sqlite:file.sq3");
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    } catch (PDOException $e) {
       echo 'Error : <br>' . $e->getMessage();
}
  

PS:你不需要尝试和捕获,但我们过去常常得到错误并以一种很好的方式处理它

接下来我们这样查询:

 $db->query(SELECT * FROM node WHERE node_name='$nodename'");

我们这样取得:

 $query = $db->query(SELECT * FROM node WHERE node_name='$nodename'");
 $row   = $query->fetch(PDO::FETCH_OBJ);

现在您使用$row->name作为示例

这里有更多关于PDO :: FETCH

的信息
  
      
  • PDO :: FETCH_ASSOC :返回按结果集中返回的列名索引的数组

  •   
  • PDO :: FETCH_BOTH (默认值):返回由结果集中返回的列名和0索引列号索引的数组

  •   
  • PDO :: FETCH_BOUND :返回TRUE,并将结果集中列的值分配给它们所属的PHP变量   与PDOStatement :: bindColumn()方法绑定

  •   
  • PDO :: FETCH_CLASS :返回所请求类的新实例,将结果集的列映射到中的命名属性   类。如果fetch_style包含PDO :: FETCH_CLASSTYPE(例如,    PDO :: FETCH_CLASS | PDO :: FETCH_CLASSTYPE)然后是班级的名称   由第一列的值确定。

  •   
  • PDO :: FETCH_INTO :更新请求类的现有实例,将结果集的列映射到中的命名属性   班级

  •   
  • PDO :: FETCH_LAZY :组合PDO :: FETCH_BOTH和PDO :: FETCH_OBJ,在访问时创建对象变量名称

  •   
  • PDO :: FETCH_NUM :返回按结果集中返回的列号索引的数组,从第0列开始

  •   
  • PDO :: FETCH_OBJ :返回一个匿名对象,其属性名与结果集中返回的列名相对应

  •   

答案 2 :(得分:0)

如果您之前使用的是MySQL,我认为sqlite DSN不适合您。 SQLite是RDBMS的另一个品牌,它与MySQL不兼容。

要使用PDO连接到MySQL,请参阅本手册页:http://www.php.net/manual/en/ref.pdo-mysql.connection.php

示例:

<?php
$dsn = 'mysql:host=localhost;dbname=testdb';
$username = 'username';
$password = 'password';

$dbh = new PDO($dsn, $username, $password);