国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

? php教程 php手冊(cè) PHP 在5.1.* 和5.2.*之間 PDO數(shù)據(jù)庫(kù)操作中的不同之處小結(jié)

PHP 在5.1.* 和5.2.*之間 PDO數(shù)據(jù)庫(kù)操作中的不同之處小結(jié)

Jun 13, 2016 pm 12:01 PM
pdo php ?? ???? ???? ??? ???? ???? ??? ???

介紹
今天發(fā)現(xiàn)php5.1.*和php5.2.*在數(shù)據(jù)庫(kù)預(yù)編譯代碼執(zhí)行的時(shí)候出現(xiàn)差異。
預(yù)編譯優(yōu)點(diǎn)
1.使用占位符,避免逐字輸入數(shù)據(jù)到SQL中。自動(dòng)處理引號(hào)和反斜線等字符的轉(zhuǎn)義——增加安全性。
2.預(yù)先“準(zhǔn)備”一條語(yǔ)句,然后在每次執(zhí)行時(shí)綁定不同值達(dá)到重用的目的。——常用于以后被多次執(zhí)行的語(yǔ)句。
3.可讀性強(qiáng)。

代碼
數(shù)據(jù)庫(kù)連接代碼都一樣.

復(fù)制代碼 代碼如下:


$protol = 'mysql:host=localhost;dbname=test';
$username = 'monty';
$passwd = '0818';
$dbh = new PDO($protol, $username, $passwd);


以下是一些測(cè)試。注意里面的SQL和for或者foreach語(yǔ)句!
測(cè)試1(用key值進(jìn)行綁定)

復(fù)制代碼 代碼如下:


$stmt = $dbh->prepare('select * from t1 where name=:name');
$params = array();
$params['name'] = 'rentao';
foreach($params as $k=>$v){
$stmt->bindParam($k, $v);
}
$stmt->execute();
$item = array();
while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
var_dump($row);
}
$stmt = null;
$dbh = null;


結(jié)論:
PHP 5.1.* PHP 5.2.*
執(zhí)行正常 執(zhí)行正常
$params['name'] = 'rentao' 和$params[':name']='rentao'這兩個(gè)都能執(zhí)行,說明不受“:”限制。
測(cè)試2(數(shù)字下標(biāo)去綁定,但是綁定的起始參數(shù)是1)——":key"在php5.2.*上不能用數(shù)字下標(biāo)綁定

復(fù)制代碼 代碼如下:


$stmt = $dbh->prepare('select * from t1 where name=:name limit 2');
$params = array();
$params[] = 'rentao';// 這里加不加":"都能成功執(zhí)行


for($i=0,$iLen = count($params); $i $k = $i+1;
$stmt->bindParam($k, $params[$i]);
}
echo "HERE1\n";
$stmt->execute();
echo "HERE2\n";

$item = array();
while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
var_dump($row);
}
$stmt = null;
$dbh = null;


結(jié)論:
php 5.1.* PHP 5.2.*
執(zhí)行正常 出現(xiàn)錯(cuò)誤:“PHP Warning:? PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: parameter was not defined”
如果把":name"改成"?",那么兩個(gè)版本都可以順利進(jìn)行。
不能同時(shí)使用兩種符號(hào)。如 select * from t2 where name=? limit :page
測(cè)試3(limit綁定:page)

復(fù)制代碼 代碼如下:

$stmt = $dbh->prepare('select * from t2 where name=:name limit :page');
$params = array();
$params['name'] = 'rentao';// 這里加不加":"都能成功執(zhí)行
$params['page'] = 2;
foreach($params as $k=>$v){
$stmt->bindParam($k, $v);
}
$stmt->execute();
echo "HERE1\n";
$item = array();
while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
var_dump($row);
}
echo "HERE2\n";
$stmt = null;
$dbh = null;


結(jié)論:
PHP 5.1.* PHP 5.2.*
執(zhí)行到$stmt->execute()時(shí),進(jìn)程一直處于等待狀態(tài)中 執(zhí)行正常:打印不出結(jié)果
測(cè)試4(在limit下進(jìn)行預(yù)編譯操作:page)——使用“?”機(jī)制運(yùn)行

復(fù)制代碼 代碼如下:


$stmt = $dbh->prepare('select * from t2 where name=? limit ?');
$params = array();
$params[] = 'rentao';
$params[] = 2;
for($i=0,$iLen = count($params); $i $k = $i+1;
$stmt->bindParam($k, $params[$i]);
}
$stmt->execute();
$item = array();
while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
var_dump($row);
}
$stmt = null;
$dbh = null;


PHP 5.1.* PHP 5.2.*
執(zhí)行正常 執(zhí)行正常:打印不出結(jié)果
測(cè)試5---order by)
PHP 5.1.* PHP 5.2.*
打印出結(jié)果,但未按order by進(jìn)行排序 執(zhí)行正常:打印不出結(jié)果
總結(jié)
PHP在使用PDO做數(shù)據(jù)庫(kù)預(yù)編譯操作的時(shí)候,盡量避免使用limit, order by, group by 做預(yù)編譯處理。綁定變量我們盡量使用統(tǒng)一標(biāo)準(zhǔn),要不然都使用“?”,要不然使用“:key”。

有用的命令,我在php5.1.*進(jìn)行測(cè)試,測(cè)試完了,我通過scp把文件傳輸?shù)絧hp5.2.*服務(wù)器上

復(fù)制代碼 代碼如下:

scp -P9888 index.php rentao@192.168.10.4:/home/rentao

? ????? ??
? ?? ??? ????? ???? ??? ??????, ???? ?????? ????. ? ???? ?? ???? ?? ??? ?? ????. ???? ??? ???? ???? ??? ?? admin@php.cn?? ?????.

? AI ??

Undresser.AI Undress

Undresser.AI Undress

???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover

AI Clothes Remover

???? ?? ???? ??? AI ?????.

Video Face Swap

Video Face Swap

??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

???

??? ??

???++7.3.1

???++7.3.1

???? ?? ?? ?? ???

SublimeText3 ??? ??

SublimeText3 ??? ??

??? ??, ???? ?? ????.

???? 13.0.1 ???

???? 13.0.1 ???

??? PHP ?? ?? ??

???? CS6

???? CS6

??? ? ?? ??

SublimeText3 Mac ??

SublimeText3 Mac ??

? ??? ?? ?? ?????(SublimeText3)

???

??? ??

?? ????
1783
16
Cakephp ????
1728
56
??? ????
1577
28
PHP ????
1442
31
???
PHP?? ?? ?? ID? ?? ??? ?????? PHP?? ?? ?? ID? ?? ??? ?????? Jul 13, 2025 am 03:02 AM

PHP?? ?? ?? ID? ?? ??? Session_id () ??? ???? ???? Session_Start ()? ???? ????? ??????. 1. ??? ????? ?? _start ()? ?????. 2. Session_id ()? ???? ?? ID? ?? ABC123DEF456GHI789? ??? ???? ?????. 3. ??? ?? ??? Session_Start ()? ??????, ???? ???? ?????? ?? ??? ?????? ??? ??????. 4. ?? ID? ??, ?? ?? ? ?? ?? ??? ??? ? ??? ?????? ???????. ??? ???? ????? ID? ????? ?? ? ??? ??????.

PHP ????? ?? ???? ???? PHP ????? ?? ???? ???? Jul 13, 2025 am 02:59 AM

PHP ????? ?? ???? ????? Syntax substr (String $ String, int $ start,? int $ length = null) ? substr () ??? ??? ? ??? ??? ???? ??? ??? ?????. ???? ?? ?? ??? ??? ?? ? ?? MB_SUBSTR () ??? ???? ?? ??? ??????. ?? ???? ?? ???? ?? ????? ?? exploit () ?? strtr ()? ???? ?? ?? ??? ?? ??? ?? ??? ?? ??? ? ????.

PHP ??? ?? ?? ???? ??? ?????? PHP ??? ?? ?? ???? ??? ?????? Jul 13, 2025 am 02:54 AM

UnitTestingInphPinvolvesVeverifying individualCodeUnitsInitsIntsormeStodStocatchBugSearlyLylyLearLiAberFactoring.1) setupphPunitviacomposer, createEatestDirectory, and ConfigeAuteAutoloadandPhpunit.xml.2) writeTestCases-oct-oct-asserterfat

PHP?? ???? ??? ???? ?? PHP?? ???? ??? ???? ?? Jul 13, 2025 am 02:59 AM

PHP?? ?? ???? ??? exploit () ??? ???? ???? ??? ???? ????. ? ??? ??? ?? ??? ?? ???? ?? ???? ??? ??? ?????. ??? Exploit (???, ???, ??)??, ??? ???? ????? ???? ?? ?????, ??? ????? ?? ?? ?????? ??? ?? ?????. ?? ?? $ str = "Apple, Banana, Orange"; $ arr = Explode ( ",", $ str); ??? [ "Apple", "Bana???

JavaScript ??? ?? : ?? ? ?? JavaScript ??? ?? : ?? ? ?? Jul 13, 2025 am 02:43 AM

JavaScript ??? ??? ?? ?? ? ?? ???? ????. ?? ???? ???, ??, ??, ?, ???? ?? ? ??? ?????. ?? ????? ?? ?? ? ? ??? ????? ?? ??? ??? ????. ??, ?? ? ??? ?? ?? ??? ??? ??? ???? ??? ??? ???? ??? ?? ??? ????. ?? ? ????? ??? ???? ? ??? ? ??? TypeofNull? ??? ?????? ??? ? ????. ? ? ?? ??? ???? ?????? ????? ???? ??? ???? ? ??? ? ? ????.

std :: Chrono ?? c std :: Chrono ?? c Jul 15, 2025 am 01:30 AM

STD :: Chrono? ?? ?? ??, ?? ?? ??, ?? ?? ? ?? ?? ? ?? ?? ??? ???? C?? ???? ??? ?????. 1. std :: chrono :: system_clock :: now ()? ???? ?? ??? ?? ? ??? ?? ??? ???? ?? ? ? ??? ??? ??? ???? ?? ?? ? ????. 2. std :: Chrono :: steady_clock? ???? ?? ??? ???? ?? ??? ???? duration_cast? ?? ?? ?, ? ? ?? ??? ??????. 3. ?? (time_point) ? ?? (??)? ?? ??? ? ? ??? ?? ??? ? ?? epoch (epoch)???? ???????.

PHP? ?? ??? ?? ???? ???? ??? ?????? PHP? ?? ??? ?? ???? ???? ??? ?????? Jul 13, 2025 am 02:39 AM

PHP?? ?? ??? ?? ???? ????? ?? ??? ???? ???? ??? $ _session ? ??? ???? ????. 1. ? ???? ?? ??? ???? ?? Session_Start ()? ???? ???? ??? ???????. 2. $ _session [ 'username'] = 'johndoe'? ?? ?? ??? ?????. 3. ?? ????? session_start ()? ?? ? ? ??? ? ??? ?? ??? ???????. 4. Session_Start ()? ? ????? ???? ??? ????, ???? ?? ???? ??, ??? ?? ???? ??? ?? ? ? ??? ??????. 5. SES? ??????

PHP? ?? ??? ??? ?????? PHP? ?? ??? ??? ?????? Jul 14, 2025 am 03:01 AM

toaccessenvironmentvariablesinphp, usegetenv () ?? $ _envsuperglobal.1.getenv ( 'var_name') retrievespescificvariable.2. $ _ en v [ 'var_name'] accessesvariablesifvariables_orderinphp.iniincludes "e".setvariablesviacliwithvar = valuephpscript.php, inapach

See all articles