php – 不应该准备好更快的语句吗?
发布时间:2020-12-13 18:25:01 所属栏目:PHP教程 来源:网络整理
导读:$s = explode (" ",microtime());$s = $s[0]+$s[1];$con = mysqli_connect ('localhost','test','pass','db') or die('Err');for ($i=0; $i1000; $i++) { $stmt = $con - prepare( " SELECT MAX(id) AS max_id,MIN(id) AS min_id FROM tb "); $stmt - execut
$s = explode (" ",microtime()); $s = $s[0]+$s[1]; $con = mysqli_connect ('localhost','test','pass','db') or die('Err'); for ($i=0; $i<1000; $i++) { $stmt = $con -> prepare( " SELECT MAX(id) AS max_id,MIN(id) AS min_id FROM tb "); $stmt -> execute(); $stmt->bind_result($M,$m); $stmt->free_result(); $rand = mt_rand( $m,$M ).'<br/>'; $res = $con -> prepare( " SELECT * FROM tb WHERE id >= ? LIMIT 0,1 "); $res -> bind_param("s",$rand); $res -> execute(); $res->free_result(); } $e = explode (" ",microtime()); $e = $e[0]+$e[1]; echo number_format($e-$s,4,'.',''); // and: $link = mysql_connect ("localhost","test","pass") or die (); mysql_select_db ("db") or die ("Unable to select database".mysql_error()); for ($i=0; $i<1000; $i++) { $range_result = mysql_query( " SELECT MAX(`id`) AS max_id,MIN(`id`) AS min_id FROM tb "); $range_row = mysql_fetch_object( $range_result ); $random = mt_rand( $range_row->min_id,$range_row->max_id ); $result = mysql_query( " SELECT * FROM tb WHERE id >= $random LIMIT 0,1 "); } 准备好的陈述更加安全 你觉得我做错了什么?
你做错了的是你准备了一千次这个陈述并且只运行一次准备好的陈述.你应该准备一次,并运行一千次.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |