php學習片段之pdo

Apache+Nginx的URL地址重寫參考:https://www.cnblogs.com/phpdragon/p/7210472.html

 1,  ApacheURL地址重寫

.htaccess  文件

RewriteEngine on
#如果不是文件、不是目錄
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

#執行RewriteRule規則體
RewriteRule . index.php [L]

 2, php+pdo基礎使用

<?php
$pdo = new PDO("mysql:host=localhost;dbname=dm","root","");
/**
 PDO::ATTR_EMULATE_PREPARES 啓用或禁用預處理語句的模擬。 有些驅動不支持或有限度地支持本地預處理。使用此設置強制PDO總是模擬預處理語句(如果爲 TRUE ),或試着使用本地預處理語句(如果爲 FALSE)。如果驅動不能成功預處理當前查詢,它將總是回到模擬預處理語句上。 需要 bool 類型。
 */
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES,false);


$sql = "update `user` set `userName`=:userName where `id`=:id";
$stmt = $pdo->prepare($sql);

// 參數值不能直接寫到 bindParam
$user = "小明";$id = 1;
// PDO::PARAM_INT,這裏bindParam必須有第三個參數,否則默認爲字符類型,查詢結果爲空
// PDO::PARAM_STR,這裏bindParam不論有沒第三個參數,結果都是空
$stmt->bindParam(':userName',$user,PDO::PARAM_STR,12);
$stmt->bindParam(':id',$id);
$stmt->execute();

/**
PDO::FETCH_ASSOC   關聯數組形式。
PDO::FETCH_NUM     數字索引數組形式。
PDO::FETCH_BOTH        兩者數組形式都有,這是默認的。
PDO::FETCH_OBJ     按照對象的形式,類似於以前的mysql_fetch_object()函數。
PDO::FETCH_BOUND   以布爾值的形式返回結果,同時將獲取的列值賦給bindParam()方法中指
PDO::FETCH_LAZY        以關聯數組、數字索引數組和對象3種形式返回結果。
 */
$user = $stmt->fetch(PDO::FETCH_ASSOC); // 單條
$user = $stmt->fetchAll(PDO::FETCH_ASSOC);// 多條
// $user = $stmt->fetch(); // 關聯數組+索引數組形式

PDO安裝與配置 

$dsn = "uri:file://G:\phpdev\apache\htdocs\imooc\pdo\dsn.txt"; $username = "root"; $passwd = ""; $pdo = new PDO($dsn, $username, $passwd);


/**
 * PDO安裝與配置
 * php.ini
 * extension=php_pdo.dll
 * extension=php_pdo_mysql.dll
 */
echo phpinfo();

// 通過uri的形式連接數據庫
try {
    $dsn = "uri:file://G:\phpdev\apache\htdocs\imooc\pdo\dsn.txt";
    $username = "root";
    $passwd = "";
    $pdo = new PDO($dsn, $username, $passwd);
    var_dump($pdo);

} catch (PDOException $e) {
    echo $e->getMessage();
}

/**
 * pdo
 */
header("Content-type:text/html;charset=utf-8");
try{
    $pdo = new PDO("mysql:host=localhost;dbname=immoc","root","");
    $sql = "SELECT username,passwd,email FROM users ";
    $stmt = $pdo->prepare($sql);
    $stmt->execute();
    $stmt->bindColumn(1,$username);
    $stmt->bindColumn(2,$passwd);
    $stmt->bindColumn(3,$email);
    while($stmt->fetch(PDO::FETCH_BOUND)){
        echo "用戶名:".$username."--密碼:".$passwd."--郵箱:".$email."<hr/>";
    }

}catch (PDOException $e) {
    echo $e->getMessage();
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章