PHP将MySQL的查询结果转换为数组并用where拼接的示例,mysqlwhere
mysql查询结果转换为PHP数组的几种方法的区别:
- $result = mysql_fetch_row():这个函数返回的是数组,数组是以数字作为下标的,你只能通过$result[0],$Result[2]这样的形式来引用。
- $result = mysql_fetch_assoc():这个函数返回是以字段名为下标的数组,只能通过字段名来引用。$result['field1'].
- $result = mysql_fetch_array():这个函数返回的是一个混合的数组,既可以通过数字下标来引用,也可以通过字段名来引用。$result[0]或者$result["field1"].
- $result = mysql_fetch_object():以对象的形式返回结果,可以通过$result->field1这样的形式来引用。
建议使用mysql_fetch_assoc()或者mysql_fetch_array,这两个函数执行速度比较快,同时也可以通过字段名进行引用,比较清楚。
where拼接技巧
将where语句从分支移到主干,解决where在分支上的多种情况,分支条件只需and 连接即可如where1==1等
$sql="SELECT * FROM bb where true ";
因为使用添加了“1=1”的过滤条件以后数据库系统就无法使用索引等查询优化策略,数据库系统将会被迫对每行数据进行扫描(也就是全表扫描)以比较此行是否满足过滤条件,当表中数据量比较大的时候查询速度会非常慢。优化方法
test.html
<td>商品名称:</td> <td width="200"><input type="text" class="text" name="kit_name" id="fn_kit_name"/></td> <td align="right">备案开始日期:</td> <td width="200"><input type="text" name="search[or_get_reg_date]"/><img src="/static/imghwm/default1.png" data-src="images/data.jpg" class="lazy" / alt="PHP将MySQL的查询结果转换为数组并用where拼接的示例,mysqlwhere" ></td> <td>备案结束日期:</td> <td width="200"><input type="text" name="search[lt_reg_date]"/><img src="/static/imghwm/default1.png" data-src="images/data.jpg" class="lazy" / alt="PHP将MySQL的查询结果转换为数组并用where拼接的示例,mysqlwhere" ></td> </tr> <tr> <td>产品经理:</td> <td><input type="text" class="text" name="search[managerid]"/></td> <?php $postData = array( 'managerid' => '21', 'or_get_reg_date' => '09', 'lt_reg_date' => '2012-12-19', 'in_id' => array(1, 2, 3), ); $tmpConditions = transArrayTerms($postData); echo $whereCause = getWhereSql($tmpConditions); // WHERE managerid like '21%' OR reg_date<'09' AND reg_date>'2012-12-19' AND id in ('1','2','3')
处理where条件的sql
<?php /** * 表单提交值转化成where拼接数组 */ function transArrayTerms($infoSearch) { $aryRst = array(); $separator = array('lt'=>'<', 'let'=>'<=', 'gt'=>'>', 'get'=>'>=', 'eq'=>'=', 'neq'=>'<>'); foreach ($infoSearch as $term => $value) { if (empty($value)) continue; $name = $term; if (strpos($term, "or_") !== false) { //添加or连接符 $terms['useOr'] = true; $name = str_replace("or_", "", $term); } if (strpos($name, "in_") !== false) { $terms['name'] = str_replace("in_", "", $name); $terms['charCal'] = " in "; $terms['value'] = "('" . implode("','", $value) . "')"; } else { $terms['name'] = $name; $terms['charCal'] = " like "; $terms['value'] = "'" . trim($value) . "%'"; } //放在else后面 foreach($separator as $charCalName =>$charCalVal){ if (strpos($name, $charCalName."_") !== false) { $terms['name'] = str_replace($charCalName."_", "", $name); $terms['charCal'] = $charCalVal; $terms['value'] = "'" . trim($value) . "'"; } } $aryRst[] = $terms; unset($terms); } return $aryRst; } function whereOperator($has_where, $useOr) { $operator = $has_where ? ($useOr === false ? ' AND ' : ' OR ') : ' WHERE '; return $operator; } /** * aryTerm transArrayTerms转化后的查询条件 * @过滤没有输入的sql查询条件并转化成where条件. */ function getWhereSql($aryTerm) { $whereCause = ''; if (count($aryTerm) > 0) { $has_where = ''; foreach ($aryTerm as $value) { $has_where = whereOperator($has_where, isset($value['useOr'])); $whereCause .= $has_where . $value['name'] . $value['charCal'] . $value['value']; } } return $whereCause; }

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는