hi
好幾天了吧,腳傷都有一周了的。玩樂的這麼久才發覺,對於年輕人,或者更具體的,對我而言,受傷最難受的不是受傷瞬間的身痛,不是隨之而來的心理負擔,不是獨自一人遠在他鄉的孤獨無助之感;最傷的是斗志,是受傷後提不起來的消沉意志,是破罐子破摔的糜爛心氣,或者,是問題本質的內心莫名的恐懼。
還好,雖然這麼多天沒動,恐懼的雙刃劍還是刺痛尚存的責任心、內疚感,我還能繼續寫博客,活活活活~~
爭取一天一門課,回家之前能有所成,一起加油!
新人新氣象新課程~
1、PDO
一、PDO簡介
1.1 PDO
PHP Data Object,數據庫訪問抽象層,統一各種數據庫的訪問接口。
提高數據庫之間的移植性以及可維護性——手段是抽象度的提高,訪問接口的統一。
不管用什麼數據庫,可以用同一個API進行編寫。
--特性
編碼一致性;
靈活性;
高性能;(c語言編寫的,編譯為PHP)
OOP。
--支持的庫
PDO只是一個抽象的接口,對該接口的操作還需要支持各種庫。
這裡我們用的是PHP語言,所以用PDO MySQL。
1.2 配置與啟用
在PHP的配置文件進行配置:
開啟php_pdo.dll拓展-》開啟相對應的數據庫的拓展php_pdo_mysql.dll-》phpinfo看一下。
當然不同的環境(集成)是不一樣的,自行百度吧。
1.3 連接數據庫
--方式
參數形式;
URI形式;
配置文件形式。php.ini
--栗子
<?php
/*
* PDO實現連接數據庫
*/
//參數形式
try {
$dsn='mysql:localhost;dbname=imooc_pdo';//數據源
$username='root';
$passwd='';
$pdo=new PDO($dsn, $username, $passwd); //pdo對象
var_dump($pdo);
}catch (PDOException $e){ //得到錯誤信息
echo $e->getMessage();
}
//URI形式
try {
$dsn='uri:C:\wamp\www\PDO_learning\dsn.txt';//區別就在於數據源獲取
$username='root';
$passwd='';
$pdo=new PDO($dsn, $username, $passwd);
var_dump($pdo);
}catch (PDOException $e){ //得到錯誤信息
echo $e->getMessage();
}
//配置文件形式,首先要在php.ini中寫pdo.dsn.imooc="mysql:host=localhost;dbname=imooc_pdo"
try {
$dsn='imooc';//區別就在於數據源獲取
$username='root';
$passwd='';
$pdo=new PDO($dsn, $username, $passwd);
var_dump($pdo);
}catch (PDOException $e){ //得到錯誤信息
echo $e->getMessage();
}
基本流程就是寫好參數,然後new一個PDO對象即可。參數有數據源信息,用戶名,密碼三個。
數據源:data source name:驅動器名稱:主機;數據庫;(各種數據庫這裡的語法是不同的,自查)。
可以看到,三種形式的區別就在於取數據源的方式不同。
建議通過參數形式連接,當然,隨你。
二、PDO對象的使用(增刪改查)
2.1 exec()
執行一條SQL語句,並返回其受影響的行數,如果沒有受影響的記錄返回為0。
注意,exec對select沒有用。
--栗子:建表&增
<?php
/*
* exec()的使用案例
*/
$pdo=new PDO('mysql:host=localhost;dbname=imooc','root','');
$sql=<<<EOF
CREATE TABLE IF NOT EXISTS user(
id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(20) NOT NULL UNIQUE,
password CHAR(32) NOT NULL,
email VARCHAR(30) NOT NULL
);
EOF;
$pdo->exec('use imooc_pdo');
$result0=$pdo->exec($sql);
var_dump($result0);
$insert='insert user(username,password,email) values("Kinga","'.md5('king').'","[email protected]")';
$result1=$pdo->exec($insert);
var_dump($result1);
但是,如果重復執行的話,會返回false。(?我也不知道為什麼,誰能告訴我)
同樣的刪除也是可以的,但是注意查select是不能用exec執行的。
每次從exec的返回結果進行結果的判定就行。
---------------------------------------------------------------------
哎呀,我真欠打,看了兩集朝廷的綜藝節目,時間嘩嘩的。。明天加油吧。