第一篇:黑馬程序員_PHP_課程同步筆記day35:PDO介紹
PDO介紹
pdo是什么?
PDO: PHP 的 Data Object(php的數據對象)pdo到底是什么?
它相當于“別人”寫的mysqldb工具類!比如:
$pdo = new pdo();
//這就是$pdo的一個對象!但pdo比我們自己寫的mysqldb工具類復雜多了,功能也強多了。其原理如下:
其中,pdo的各種數據庫“引擎”,我們可以在php.ini中進行“開關”控制: 如下:
黑馬程序員濟南中心 編著
重啟apache。
使用pdo連接mysql數據庫
DSN = “mysql:host=服務器地址/名稱;port=端口號;dbname=數據庫名”;Options = array(PDO::MYSQL_ATTR_INIT_COMMAND=>’set names utf8’);$pdo = new pdo(DSN, “用戶名”, “密碼”, Options);
[PHP] 純文本查看 復制代碼 ? 01
04 //DSN = “mysql:host = 服務器地址/名05 稱;port=端口號;dbname=數據庫名”;06 //DSN是一種常見的“縮略語”,表示:Data
黑馬程序員濟南中心 編著
07 Source Name(數據源名稱)08 //Options = 09 array(PDO::MYSQL_ATTR_INIT_COMMAN10 D=>'set names utf8');11 //其中PDO就是類,12 MYSQL_ATTR_INIT_COMMAND是該類中的13 一個常量
$dsn = “mysql:host=localhost;port=3306;dbname=php43;”;$opt = array(PDO::MYSQL_ATTR_INIT_COMMAND=>“set names utf8”);$pdo = new pdo($dsn,“root”,“root”,$opt);
var_dump($pdo);[align=left] 結果如下:
object(PDO)#1(0){}
使用pdo執(zhí)行sql語句:
黑馬程序員濟南中心 編著
有2個方法,如下:
$result = $pdo-> query($sql);//可以執(zhí)行任何sql語句,通常適用于執(zhí)行select這種
如果執(zhí)行select這種有數據返回的語句,則所得到的結果是“pdo結果集”
$result = $pdo-> exec($sql);
//只能執(zhí)行沒有返回數據的sql語句,比如增刪改語句;
執(zhí)行的結果返回true或false
銷毀pdo數據對象(釋放資源):
pdo技術范圍中,會有兩種對象數據結果:
pdo對象
pdo結果集對象
$pdo = null;$result->closecursor();
//$result 就是pdo數據集(pdo結果集)
pdo對象的其他方法
$pdo->lastInsertId():獲取最后一次插入時的自增長的id值
$pdo->beginTransaction();$pdo->commit()$pdo->rollBack();$pdo->setAttribute(屬性名,屬性值);
黑馬程序員濟南中心 編著
最后一個舉例:
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
黑馬程序員濟南中心 編著
第二篇:黑馬程序員_PHP_課程同步筆記day36:PDO介紹(二)
【黑馬程序員濟南】PDO介紹(二)
異常模式
使用一種特定的異常處理語法,則一發(fā)生錯誤,就會自動處理,不發(fā)生錯誤,就正常執(zhí)行。語法形式如下:
try {
//這里執(zhí)行pdo的一些操作,比如:
$result1 = $pdo->query(“select * form user_list;”);//該語句有錯誤!
上一行“可能”出錯,則如果出錯,就不會再執(zhí)行try范圍中的后續(xù)語句;而是進入catch語句中
而沒有出錯,就會繼續(xù)執(zhí)行try中的后續(xù)語句;
。。這里可以繼續(xù)處理pdo結果集對象$result1;
}
catch(PDOEXCEPTION $e){
//這里,$e是一個“對象”——就是“錯誤對象”,或所謂的“異常對象”
其中$e對象有一些屬性或方法可以獲取有關錯誤的信息,比如:
echo “錯誤代號:”.$e->GetCode();
echo ‘錯誤信息:”.$e->GetMessage()
}
黑馬程序員濟南中心 編著
使用異常模式,必須先將pdo對象“設置為異常模式”,如下:
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);[PHP] 純文本查看 復制代碼 ? 01
04 //連接PDO
05 $dsn = “mysql:host=localhost;port=3306;dbname=haha”;06 $opt = array(PDO::MYSQL_ATTR_INIT_COMMAND=>'set names 07 utf8');08 $pdo = new pdo($dsn,“root”,“123”,$opt);09 //演示異常模式: $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTI12 ON);13 14 try{ 15 $result = $pdo->query(“select * from no_this_table;”);//沒有這個16 表,該語句有錯誤!var_dump($result);//不會執(zhí)行這步。18 }
黑馬程序員濟南中心 編著 catch(PDOEXCEPTION $e){ echo “錯誤代號:”.$e->GetCode();echo “錯誤信息:”.$e->GetMessage();} pdo的結果集對象
$stmt = $pdo->query(“select......”);//這是獲得結果集
$stmt->rowCount():結果的行數
$stmt->columnCount():結果的列數
$stmt->fetch([返回類型]):獲取結果集的一行,為一個一維數組
//其中返回類型常用的有:
PDO::FETCH_ASSOC:表示關聯數組
PDO::FETCH_NUM:表示索引數組
PDO::FETCH_BOTH:表示前二者皆有,這是默認值
PDO::FETCH_OBJ:表示對象
$stmt->fetchAll([返回類型]):獲取結果集的所有行,為一個二維數組
$stmt->fetchColumn([$i]):獲取一行的某個列,默認為第一列的值
pdo的預處理語句
基本理解:
就是一條sql語句中,包含了“未定參數數據”,但卻預先對該sql語句進行“預處理”,以提升速度,提高安全性。
比如:
黑馬程序員濟南中心 編著
語法一:$sql1 = “select * from tab1 where f1 = ? and f2 >?”;
//占位符形式
語法二:$sql2 = “select * from tab1 where f1 = :val1 and f2 >:val2”;
//命名參數形式
我們可以先“預處理”:
$result1 = $pdo->prepare($sql1);
$result2 = $pdo->prepare($sql2);
然后,可以對其中的“未定參數數據”進行賦值了,比如:
$result1->bindValue(1, 值1);
//這種形式只能用數字代號表示第幾個,順序從1開始
$result1->bindValue(2, 值2);
//還要注意:字符串或數字就該怎么寫就怎么寫
或:
$result2-> bindValue(“:val1”, 值1);//這里只能用該帶冒號的名字來表示
$result2-> bindValue(“:val2”, 值2);
最后,就可以執(zhí)行了:得到該得到的結果集!
$result1->execute();
$result2->execute();舉例:
[PHP] 純文本查看 復制代碼 ? 01
黑馬程序員濟南中心 編著
02 /*黑馬程序員濟南中心出品*/ 03
04 //連接PDO 05 $dsn = 06 “mysql:host=localhost;port=3306;dbna07 me=haha”;08 $opt = 09 array(PDO::MYSQL_ATTR_INIT_COMMA10 ND=>'set names utf8');11 $pdo = new pdo($dsn,“root”,“123”,$opt);13 //語法一: $sql1 = “select * from user_list where 16 user_name= ? and age>?”;//占位符形式 17 //語法二: $sql2 = “select * from user_list where 19 user_id >:n and age < :age”;//命名參數形20 式 21 $re1 = $pdo->prepare($sql1);//進行23 預處理
黑馬程序員濟南中心 編著 $re2 = $pdo->prepare($sql2);//進行25 預處理 26
$re1->bindValue(1,“user3”);$re1->bindValue(2,30);$re1->execute();
$re1->bindValue(“:n”,10);$re1->bindValue(“:age”,60);$re1->execute();
[align=left]
黑馬程序員濟南中心 編著
第三篇:黑馬程序員_PHP_課程同步筆記day17:數組介紹
【黑馬程序員】PHP課程同步筆記day17:數組介紹
數組 1.數組的概念
數組是一組值的集合,變量是單個值的容器,而數組是多個值的容器 2.數組的分類
1.枚舉數組:數組的下標是從0開始的正整數
2.關聯數組:數組的下標可以是字符串
$arr = array(“db_host” => “l(fā)ocalhost”, “db_user” => “root”, “db_pwd” =>”root”,);
3.混合數組:下標既有整型的,也有字符串的
$arr = array(“db_host” => “l(fā)ocalhost”, “db_user” => “root”, “db_pwd” =>”root”, “黑馬程序員”, “濟南分?!?;
4.多維數組:數組的元素的值的類型是一個數組。數組套數組。數組元素的下標只能是正整數和字符串。數組元素的值,可以是任何類型,當然可以是數組。
黑馬程序員濟南中心 編著
$arr = array(Array(10,11,12,13), Array(20,21,22), Array(30,31), TRUE,NULL);3.數組的創(chuàng)建
a)使用array()來創(chuàng)建數組 $arr = array([$key=>]$value, [$key=>]$value, [$key=>]$value,.....);語法說明:
$key代表數組元素的下標,可以省略。
$key的類型可以是整型和字符型,如果$key省略,默認的數組應該是枚舉數組。$value代表數組元素的值,值可以是任何類型?!?>”重載下標,或者重新指定下標。多個數組元素之間用英文下的逗號隔開。b)使用[]創(chuàng)建數組的語法
語法1:$arr[] = $value
黑馬程序員濟南中心 編著
說明: 1)如果數組不存在,則會創(chuàng)建一個數組 2)第一個元素就是下標為0的元素 3)如果數組存在,則相當于添加一個新元素 4)新元素的下標,應該是最大整數下標+1 語法2: $arr[$key] = $value 說明:
1)同時指定下標,指定的下標是多少,就是多少。2)如果指定的數組不存在,也會創(chuàng)建一個數組 3)如果指定的數組存在,則添加一個新元素 $arr[] = 100;$arr[] = 200;$arr[5] = 500;$arr[“a”] = “abc”;多維數組
1、使用array()來創(chuàng)建多維數組
$arr = array(Array(10,11,12,13,14), Array(20,21,22,23), Array(30,31,32), Array(Array(40,41),黑馬程序員濟南中心 編著
Array(42,43)));
2、使用[]來創(chuàng)建多維數組
$arr[“name”] = “Mary”;$arr[“sex”] = “男”;$arr[“contact”][“tel”] = “11111111111”;$arr[“contact”][“qq”] = “11233321”;$arr[] = array(10,20,30);實例:用表格輸出二維數組 $arr = array(Array(“10010”,”Mary”,”大?!?”傳智專修學院”), Array(“10020”,”Kate”,”大?!?”傳智專修學院”), Array(“10030”,”James”,”大?!?”傳智專修學院”), Array(“10040”,”Kobe”,”大?!?”傳智專修學院”),);$str = “”;$str.= “
b)語法:print_r(mixed $expression)c)說明:如果給出的是string、interger或float,將打印變量值本身。如果給出的是array,將會按照一定格式顯示鍵和元素
2.Count()a)描述:統(tǒng)計數組有效數據的個數
b)說明:計算數組中的單元數目或對象中的屬性個數。c)語法:int count(mixed $var)d)參數:$mode是否統(tǒng)計多維數組中的個數 3.Unset()a)描述:刪除變量或數組元素或者對象屬性 b)語法:void unset(mixed $var)c)返回值:無
d)注意:如果刪除變量的話,只是刪除變量名稱和到值之間的指向。如果刪除數組元素的話,值會被刪除,而下標還在。如果刪除整個數組的話,而整個數組都不存在黑馬程序員濟南中心 編著
了。
實例:求一維數組中元素的平均值 $arr = array(1,2,3,4,5,6,7,8);$num = 0;$len = count($arr);For($i=0;$i<$len;++$i){ $sum += $arr[$i];} Echo “平均值為:”.$sum/$len;實例:求二維數組中元素的平均值 $arr = array(Array(10,11,12,13,14), Array(20,21,22,23), Array(30,31,32), Array(40,41), Array(50));$sum = 0;$len = 0;For($i = 0;$i 黑馬程序員濟南中心 編著 $len ++;} } Echo “平均值:”.round($sum/$len,2);實例:求一維數組中的最大值 $arr = array(9,2,3,45,5,7);$max = $arr[0];For($i=0;$i If($max<$arr[$i]){ 黑馬程序員濟南中心 編著 $max = $arr[$i];$max_index = $i;} //最小值 If($min>$arr[$i]){ $min = $arr[$i];$min_index = $i;} } //交換最大值和最小值的位置 $arr[$max_index] = $min;$arr[$min_index] = $max;數組遍歷:foreach 語法結構: Foreach($arr as [$key=>]$value){循環(huán)體代碼} 語法結構說明: $arr代表當前要遍歷的數組名稱 As是系統(tǒng)關鍵字 $key表示每一次取到元素的鍵名,可以省略 $value表示每一次取到元素的鍵值 如果數組指針指到數組的末端,則退出循環(huán) 實例:foreach遍歷一維數組 黑馬程序員濟南中心 編著 $arr = array(“name” => “Mary”, “sex” => “男”, “age” => 24);Foreach($arr as $key=>$value){ Echo “$arr[$key]=$value 黑馬程序員濟南中心 編著 } $str.=” 2.List()a)描述:把數組中的值(前幾個值)賦給一些變量 b)語法:array list(mixed $varname)c)舉例:list($name,$sex,$age)= array(“Kobe”,”男”,24,”高中”);i.說明:將數組中前三個元素的值,賦給list函數中的三個變量。 ii.數組中多余的值不需要 黑馬程序員濟南中心 編著 iii.要求數組必須是枚舉數組,下標必須是從0開始的正整數 iv.下標必須是連續(xù)的,中間不能斷檔。 黑馬程序員濟南中心 編著 【黑馬程序員】PHP課程同步筆記day05:CSS介紹(二)CSS內邊距屬性:padding填充 ?Padding:一個數字,指的是四個方向是一樣的(上右下左) Padding的四個屬性: ? Padding-top(上內邊距),padding-right(右內邊距),padding-bottom(下內邊距),padding-left(左內邊距)?Padding:當padding后有兩個數字時即Padding:10px 20px;?指的是上下內邊距為10px,左右內邊距為20px ?注意:兩個數字之間有空格。 ?Padding:當padding后有三個數字時即Padding:10px 20px 30px;?指的是上邊距10px,下邊距的填充為30px,左右邊距為20px;?Padding:當padding后有四個數字時即padding:10px 20px 30px 40px;?按著順時針方向。(上右下左)注釋:不允許使用負值。代碼:
”;} 實例:foreach遍歷二維數組 $arr = array(“a” =>array(“10010”,”Mary”,”男”,24), “b”=>array(“10020”,”Kate”,”女”,20), “c” => array(“10030”,”Kobe”,”男”,40));$str = “”;$str.=””;Foreach($arr as $arr2){ $str.=”
”;Echo $str;實例:foreach 中的$value引用傳地址 $arr = array(1,2,3,4,5,6,7,8);Foreach($arr as &$value){ $value *=2;} Var_dump($arr);數組操作函數 1.each()a)描述:返回數組中當前的鍵/值對(數組元素)并將數組指針向前移動一步 b)語法:array each(array &$array)c)返回值:返回array數組中當前指針位置的鍵/值對并向前移動數組指針。鍵值對被返回四個單元的數組。單元0和key包含有數組單元的鍵名,1和value包含有數據。”;Foreach($arr2 as $value){ $str.=” ”;$value ”;} $str.=”第四篇:黑馬程序員_PHP_課程同步筆記day05:CSS介紹(二)
黑馬程序員濟南中心 編著
div{border:1px solid red;width:300px;padding:20px;}
第五篇:黑馬程序員_PHP_課程同步筆記day13:PHP基礎介紹
【黑馬程序員】PHP課程同步筆記day13:PHP基礎介紹
1.語言基礎
PHP文件的訪問,必須要經過虛擬空間(域名),才能訪問PHP文件,不能本地直接訪問 Php文件的擴展名:.php Php代碼的標記: Php區(qū)分大小寫。但是函數名和關鍵字不區(qū)分大小寫。每一條語句,必須以英文下的分號(;)結束。2.語句結束符
每一條PHP語句,都要以英文狀態(tài)下的分號(;)結束。
PHP中的語法結構(if、switch、for、while、do while、function、foreach等)不能加分號(;)結尾。
如果PHP代碼中,只有一條語句的話,可以省略分號;如果是多條PHP語句,最后一條語句可以省略分號。3.注釋
HTML注釋: CSS注釋:/* */
黑馬程序員濟南中心 編著
JS注釋://或/* */ PHP的單行注釋://或# PHP的多行注釋:/* */ 注意:
PHP多行注釋不能嵌套
PHP的注釋在瀏覽器端同樣看不見
PHP變量
1.變量的概念
變量是臨時存儲數據的容器 變量是在內存中存在和運行的
變量是一個代號。用變量來代替一個數據 2.變量命名規(guī)則
變量名稱包含的字符有:a-z、A-Z、0-
9、_ 變量名只能以字母或下劃線開頭 變量名不能以數字開頭
PHP的變量前,必須加”$”符號?!?”不是變量名稱的一部分。”$”之后為變量名
PHP變量是區(qū)分大小寫的
PHP關鍵字,也可以作為變量名稱。如$if、$while等 PHP長文件名如何表示
“駝峰式命名”:$getUserName “下劃線式命名”:$get_user_name
黑馬程序員濟南中心 編著
PHP變量操作
1.定義變量
PHP的變量不用提前定義,用的時候直接賦值即可.$name = “abc”;JS的變量在使用時要提前聲明。Var name=”abc”;2.變量賦值
使用”=”賦值號,給變量進行賦值(往容器中裝東西)。
“=”含義:將”=”右邊的運算結果,賦值給”=”左邊的變量名稱,左邊不能是一個運算表達式。
舉例:$a = $b + 10*24-26 3.讀取變量值
$name = “Mary”;Echo “我的名字叫$name”;4.判斷變量是否存在isset()如果一個變量的值不等于NULL,就返回TRUE,反之返回FALSE 5.判斷變量是否為空empty()對于empty來說,0、””、”0”、0.0、NULL、FALSE、array()認為是空,返回TRUE,反之就返回FALSE.6.刪除變量unset()Unset()函數
語法:void unset(mixed $var[,mixed$....])提示:變量被刪除后,變量的返回值為NULL。
黑馬程序員濟南中心 編著
變量的值傳遞和引用傳遞
1、值傳遞
將變量的值”復制”一份,傳給另一個變量。
這兩個變量之間沒有任何聯系,修改其中一個,另一個變量的值不會改變。在PHP中,哪些數據類型,默認是”值傳遞”。包括:字符型、整形、浮點型、布爾型、數組、NULL。
在JS中,默認是”值傳遞”包括:字符型、數值型、布爾型、undefined、NULL
黑馬程序員濟南中心 編著
2.引用傳地址
將一個變量的數據地址,”復制”一份,傳給另一個變量。這兩個變量,指向同一份數據。
在PHP中,默認傳地址的數據類型有:對象、資源。在JS中,默認傳地址的數據類型有:數組、對象、函數。
但是在PHP 中,也可以讓所有其他類似數據,都變成”引用傳地址”,只需在引用的變量名前加”&”符號.黑馬程序員濟南中心 編著
可變變量
一個變量的名稱,可以用另一個變量的值來充當。如$$name;
實例:批量獲取表單提交值 代碼:
if(isset($_POST['ac'])&&$_POST['ac'] == “l(fā)ogin”){
黑馬程序員濟南中心 編著
foreach($_POST as $key=>$value){
/*
$$key = $value
$username = $key;
$password = $value
*/
$$key = $value;//可變變量
}
$sql = “INSERT INTO 007_news(username,password)VALUES('$username','$password')”;
echo $sql.“
”;} ?> PHP超全局變量數組
1.PHP中的超全局變量數組
$_GET:獲取地址欄中傳遞的參數。
黑馬程序員濟南中心 編著
$_POST:獲取表單method=”post”提交的數據
$_REQUEST:包含$_GET、$_POST、$_COOKIE上數組中的數據 $_SERVER:獲取apache服務器或執(zhí)行環(huán)境的相關信息 $GLOBALS:獲取全局變量的各個數據 $_SESSION:跟蹤用戶 $_COOKIE:跟蹤用戶 $_FILES:上傳文件 2.超全局變量$_POST的使用
描述:主要用來獲取表單method=”post”提交的數據。舉例:$username = $_POST[‘username’];3.實例:簡單PHP計算器 代碼實現:
if(isset($_POST['ac'])&&$_POST['ac'] == ”login“){
// 獲取表單提交值
$value1 = $_POST['value1'];
$value2 = $_POST['value2'];
$operator = $_POST['operator'];
//計算結果
switch($operator){
黑馬程序員濟南中心 編著
case 1:
$result = $value1 + $value2;
break;
case 2:
$result = $value1-$value2;
break;
case 3:
$result = $value1 * $value2;
break;
case 4:
$result = $value1 / $value2;
break;
case 5:
$result = $value1 % $value2;
} }else{
//網頁首頁下載完成時,變量初始化
$value1 = ”“;
$value2 = ”“;
$operator =1;
$result = ”“;}
黑馬程序員濟南中心 編著
?>
超全局變量$_GET的使用$_GET可以獲取地址欄中參數的數組
發(fā)送GET數據的方法總結
1.通過表單method=”get”發(fā)送
2.通過發(fā)送GET數據
黑馬程序員濟南中心 編著
3.通過JS的location對象也可以發(fā)送GET數據
4.使用PHP的header()函數傳遞參數
黑馬程序員濟南中心 編著
黑馬程序員濟南中心 編著


文檔為doc格式
聲明:本文內容由互聯網用戶自發(fā)貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發(fā)現有涉嫌版權的內容,歡迎發(fā)送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯系你,一經查實,本站將立刻刪除涉嫌侵權內容。
黑馬程序員_PHP_課程同步筆記day07:JS介紹(二)
【黑馬程序員】PHP課程同步筆記day07:JS介紹(二) 流程控制 If語句: 格式:if(條件){//語句塊} 如果條件滿足true,才執(zhí)行大括號里面的代碼,如果條件不滿足,則不執(zhí)行大括號里面的代碼......
黑馬程序員_PHP_課程同步筆記day20:mysql數據庫介紹
【黑馬程序員】PHP課程同步筆記day20:mysql數據庫介紹 數據庫(Database)按照數據結構來組織、存儲和管理數據在建立在計算機存儲設備上的倉庫 數據庫通常分為層次式數據庫、......
黑馬程序員_PHP_課程同步筆記day18:PHP函數
【黑馬程序員】PHP課程同步筆記day18:PHP函數 PHP函數 1.概念 將一段常用的功能代碼,進行封裝,然后起個名字,叫”函數” 使用函數,可以減少我們的工作量。對于后期的項目維護,十分......
黑馬程序員_PHP_課程同步筆記day41:驗證碼模塊講解
【黑馬程序員濟南】PHP模塊講解之驗證碼部分 在日益龐大的網民的面前,如何能夠合理的規(guī)避以防止服務器被惡意DoS攻擊或者不法之徒利用機器程序自動貼牛皮癬廣告?一條小小的驗......
黑馬程序員_PHP_課程同步筆記day10:JS小游戲
【黑馬程序員】PHP課程同步筆記day10:JS小游戲 通過前幾周的學習我們對JS有一定的了解,今天的內容就是將之前的學習的內容在小游戲中應用,希望大家能夠在小游戲中進一步提升自......
黑馬程序員_PHP_課程同步筆記day11:DOM介紹(五篇范例)
【濟南中心】PHP課程同步筆記day11:DOM介紹 DOM(文本對象模型(Document Object Model)) W3C組織推薦的處理可擴展標志語言的標準編程接口。W3C的DOM,可以使程序或腳本(JS或AS......
黑馬程序員_PHP_課程同步筆記day21:表定義語句
【黑馬程序員】PHP課程同步筆記day21:表定義語句 表定義語句 創(chuàng)建表: 基本形式: Create table [if not exists] 表名(列定義列表,[索引或約束列表])[表選項列表]; 說明: 1.上述......
黑馬程序員_PHP_課程同步筆記day30:PHP類中關鍵字
【黑馬程序員濟南】PHP課程同步筆記day30:PHP類中關鍵字 今天我來為大家講解一下PHP類中的一些關鍵字: parent和self關鍵字 parent: 用在一個類的一個方法中; 代表這個類的“......