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

 

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