2013-07-10 98 views
0

感謝您是否可以幫助我將下面的mysql代碼寫入PDO語句。如何將mysql查詢寫入PDO

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

    $result = mysql_query($sql); 

,當我在PDO ::查詢手冊閱讀,我發現這個代碼

 <?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)」

+0

http://php.net/manual/en/pdo.construct.php – zerkms

回答

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:作爲返回我返回由列號索引的數組n您的結果集,開始於第0列

  • PDO :: FETCH_OBJ:返回與屬性名稱的匿名對象對應於列名在結果集返回

+0

這是sqllite不是mysql – Starx

0

該行指向你的sql文件,沒有它的功能。它打開一個PDO連接,你可以進一步查詢。

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

PDO::FETCH_ASSOC告訴函數fetch()從表拉關聯數組。

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);