-
6666查看全部
-
55555查看全部
-
6666查看全部
-
4444查看全部
-
333查看全部
-
222查看全部
-
111查看全部
-
<?php //1.連接 $link = mysqli_connect(‘localhost’,’root’,’root’,’test’) or die(‘Connect Error:’.mysqli_connect_errno().”:”.mysqli_connect_error()); //2.編碼 mysqli_set_charset($link,’UTF8’); //3.查詢 $sql=“INSERT user(username,password,age) VALUES(‘a(chǎn)’,’a’,11);”; $res=$mysqli_query($link,$sql); if($res){ echo ‘AUTO_INCREAMENT:’.$mysqli_insert_id($link); echo ‘<hr/>’; echo ‘AFFECTED_ROWS:’.$mysqli_affected_rows($link); }else{ echo ‘ERROR:<br/>’; echo mysqli_errno($link).”:”.mysqli_error($link); } print_r($link); ?>查看全部
-
$sql="SELECT username,email,url,face,content,pubTime FROM comments"; $mysqli_result=$mysqli->query($sql); if($mysqli_result&& $mysqli_result->num_rows>0){ while($row=$mysqli_result->fetch_assoc()){ $comments[]=new Comment($row); } } 將用戶提交的信息轉(zhuǎn)換為json數(shù)據(jù)并提交給文件doAction.php,用戶輸入信息有誤等信息的顯示,都是由javascript完成查看全部
-
$res=Comment::validate($arr); //數(shù)據(jù)在自定義類方法中獲取,過濾,保存 //json_encode()對(duì)變量進(jìn)行JSON編碼,json_decode()對(duì)JSON格式的字符串進(jìn)行轉(zhuǎn)換為PHP變量. $comment的output()方法 public function output(){ if($this->data['url']){ $link_start="<a href='".$this->data['url']."' target='_blank'>"; //a標(biāo)簽分開寫是為了能在a標(biāo)簽中插入其他元素 $link_end="</a>"; } $dateStr=date("Y年m月d日 H:i:s",$this->data['pubTime']); $res=<<<EOF <div class='comment'> <div class='face'> {$link_start} <img width='50' height='50' src="img/{$this->data['face']}.jpg" alt="" /> {$link_end} </div> <div class='username'> {$link_start} {$this->data['username']} {$link_end} </div> <div class='date' title='發(fā)布于{$dateStr}'> {$dateStr} </div> <p>{$this->data['content']}</p> </div> EOF; return $res; }查看全部
-
表單輸入過濾下篇 //2.2過濾用戶輸入的特殊字符 public static function validate_str($str){ if(mb_strlen($str,'UTF8')<1){ //以UTF8格式獲取字符串的長(zhǎng)度獲取字符串長(zhǎng)度 return false; } //htmlspecialchars把預(yù)定義的字符轉(zhuǎn)換為HTML實(shí)體,ENT_QUOTES為編碼$str內(nèi)的雙引號(hào)和單引號(hào) //nl2br()在字符串中的每個(gè)新行(\n)之前插入 HTML 換行符(<br> 或 <br />) $str=nl2br(htmlspecialchars($str,ENT_QUOTES)); return $str; }查看全部
-
表單輸入過濾中篇 2.程序分析 //2.1檢測(cè)用戶輸入的數(shù)據(jù) public static function validate(&$arr){ //&為引用聲明:&$arr if(!($data['email']=filter_input(INPUT_POST,'email',FILTER_VALIDATE_EMAIL))){ $errors['email']='請(qǐng)輸入合法郵箱'; } if(!($data['url']=filter_input(INPUT_POST,'url',FILTER_VALIDATE_URL))){ $url=''; } //過濾函數(shù)的回調(diào)函數(shù),函數(shù)名必須存入名為 "options" 的關(guān)聯(lián)數(shù)組中 if(!($data['content']=filter_input(INPUT_POST,'content',FILTER_CALLBACK,array('options'=>'Comment::validate_str')))){ $errors['content']='請(qǐng)輸入合法內(nèi)容'; } //過濾標(biāo)準(zhǔn)的相應(yīng)參數(shù)必須存入一個(gè)名為 "options" 的關(guān)聯(lián)多維數(shù)組中。 $int_options=array( 'options'=>array( //FILTER_VALIDATE_INT對(duì)應(yīng)參數(shù) 'min_range'=>1, //min_range - 規(guī)定最小整數(shù)值 'max_range'=>5 //max_range - 規(guī)定最大整數(shù)值 ) ); if(!($data['face']=filter_input(INPUT_POST,'face',FILTER_VALIDATE_INT,$int_options))){ $errors['face']='請(qǐng)選擇合法頭像'; } if(!empty($errors)){ $arr=$errors; return false; } $arr=$data; $arr['email']=strtolower(trim($arr['email'])); //strtolower()將字符串轉(zhuǎn)換成小寫 trim()去掉前后空格 return true; }查看全部
-
表單輸入過濾上篇 1.php5.4起支持回調(diào)函數(shù) 1).函數(shù)做回調(diào)函數(shù),以 string 類型傳遞其名稱。()可以使用任何內(nèi)置或用戶自定義函數(shù),但不能使用語言結(jié)構(gòu)(如:array(),echo,empty(),eval(),exit(),isset(),list(),print 或 unset() )函數(shù) 2).一個(gè)已實(shí)例化的對(duì)象的方法被作為數(shù)組傳遞,下標(biāo) 0 包含該對(duì)象,下標(biāo) 1 包含方法名。 3).靜態(tài)類方法也可不經(jīng)實(shí)例化該類的對(duì)象而傳遞,只要在下標(biāo) 0 中包含類名而不是對(duì)象。自 PHP 5.2.3 起,也可以傳遞 'ClassName::methodName'。 function my_callback_function() { echo 'hello world!'; } class MyClass { static function myCallbackMethod() { echo 'Hello World!'; } } //函數(shù)做回調(diào)函數(shù) call_user_func('my_callback_function'); //靜態(tài)方法做為回調(diào)函數(shù) call_user_func(array('MyClass', 'myCallbackMethod')); call_user_func('MyClass::myCallbackMethod'); // 對(duì)象方法做回調(diào)函數(shù) $obj = new MyClass(); call_user_func(array($obj, 'myCallbackMethod')); filter_input()為幾大過濾函數(shù)之一的:獲取腳本外數(shù)據(jù)并進(jìn)行字符合法化過濾函數(shù). filter_input(INPUT_POST,'email',FILTER_VALIDATE_EMAIL) filter_input()參數(shù)說明:第一個(gè)參數(shù)表示調(diào)用的數(shù)據(jù)是外部通過POST方法傳輸過來,第二個(gè)參數(shù)表明從$_POST[email]中取得具體數(shù)據(jù),第三個(gè)參數(shù)說明具體過濾標(biāo)準(zhǔn),第四個(gè)參數(shù)為具體過濾標(biāo)準(zhǔn)的相應(yīng)參數(shù)(可省略)查看全部
-
MYSQLi中事務(wù)處理下篇(PHP代碼及其說明) 3.用php中的mysqli庫實(shí)現(xiàn): //先關(guān)閉自動(dòng)提交功能 $mysqli->autocommit(FALSE); $sql="UPDATE account SET money=money-200 WHERE username='king'"; $res=$mysqli->query($sql); $res_affect=$mysqli->affected_rows; $sql1='UPDATE account SET money=money+200 WHERE username="queen"'; $res1=$mysqli->query($sql1); $res1_affect=$mysqli->affected_rows; if($res &&$res_affect>0 && $res1 && $res1_affect>0){ //判斷是否所有語句都運(yùn)行正確 $mysqli->commit(); //提交系統(tǒng)執(zhí)行 echo '轉(zhuǎn)賬成功<br/>'; $mysqli->autocommit(TRUE); //回復(fù)自動(dòng)提交功能 }else{ $mysqli->rollback(); //回滾到自動(dòng)事務(wù)初始狀態(tài)(這個(gè)函數(shù)還有$mysqli->autocommit(TRUE)的功能) echo '轉(zhuǎn)賬失敗<br/>'; }查看全部
-
MYSQLi中事務(wù)處理上篇(事務(wù)原理與操作方法說明) 1.一個(gè)事務(wù)是一個(gè)連續(xù)的一組數(shù)據(jù)庫操作只有當(dāng)該組內(nèi)的每個(gè)單獨(dú)的操作都成功了,整個(gè)事務(wù)才執(zhí)行。如果在事務(wù)的任何操作失敗,則整個(gè)事務(wù)將失敗。 事務(wù)有以下四個(gè)標(biāo)準(zhǔn)屬性 原子性: 確保工作單元內(nèi)的所有操作都成功完成,否則事務(wù)將被中止在故障點(diǎn),和以前的操作將回滾到以前的狀態(tài)。 一致性: 確保數(shù)據(jù)庫正確地改變狀態(tài)后,成功提交的事務(wù)。 隔離性: 使事務(wù)操作彼此獨(dú)立的和透明的,一個(gè)事務(wù)處理后的結(jié)果,影響了其他事務(wù),那么這個(gè)事務(wù)會(huì)撤回。 持久性: 確保提交的事務(wù)的結(jié)果或效果的系統(tǒng)出現(xiàn)故障的情況下仍然存在(軟、硬件崩潰后,InnoDB數(shù)據(jù)表驅(qū)動(dòng)會(huì)利用日志文件重構(gòu)修改). 2.MYSQL的事務(wù)處理主要有兩種方法(在數(shù)據(jù)庫命令行下) 1).用begin,rollback,commit來實(shí)現(xiàn) begin開始一個(gè)事務(wù) rollback事務(wù)回滾 commit 事務(wù)確認(rèn) 在這種方法時(shí),當(dāng)用commit確認(rèn)或者rollback回滾后,事務(wù)處理功能將結(jié)束,如果要開啟下一個(gè)事務(wù),需要從新用begin開始 2).直接用set來改變mysql的自動(dòng)提交模式 //mysql將每一條SQL語句當(dāng)做一個(gè)事務(wù),當(dāng)輸入一條SQL語句并以";"接受時(shí)系統(tǒng)將提交這一條SQL語句并執(zhí)行 mysql默認(rèn)是自動(dòng)提交的,也就是你提交一個(gè)query,就直接執(zhí)行!可以通過 set autocommit = 0 禁止自動(dòng)提交 set autocommit = 1 開啟自動(dòng)提交 在這種方法時(shí),當(dāng)用commit確認(rèn)或者rollback回滾后,事務(wù)處理功能將不會(huì)結(jié)束,而是同時(shí)開啟了新的事務(wù)!必須用set autocommit = 1 來關(guān)閉事務(wù)功能查看全部
舉報(bào)
0/150
提交
取消