2012-11-27 2 views
0

JavaScript 검색 양식에서 많은 변수를받는 PHP 스크립트가 있습니다. 이 변수 중 일부는 비어있을 수 있으므로 쿼리하기 전에 각 변수를 확인해야합니다. 예 : 사용자가 학생의 이름과 ID를 입력하고 성별 입력란을 비워 둘 수 있습니다. 그러면 검색어를 어떻게 작성해야하나요? 추가 사용이 필요할 수도 있음을 읽었지 만 어떻게해야하는지 잘 모릅니다. 다른 좋은 아이디어가 있습니까? 스크립트의PHP 쿼리 스크립트 - 쿼리하기 전에 빈 변수를 확인하십시오.

조각 : 나는 빈과는 isset 함수를 사용

좋아하는 경우

$name = ($_GET['name']); 
$id = ($_GET['id']); 
$gender = ($_GET['gender']); 

(!$con) { 
    throw new Exception("Error in connection to DB"); 
    } 

    $query ="SELECT grade FROM students WHERE name ILIKE '%$name%' "; 
    $result = pg_query($query); 

편집, 나는 모든 변수를 확인하고 새 쿼리를 작성해야? 확인한 후 원래 쿼리를 업데이트하려면 어떻게해야합니까?

+0

empty 및 isset 함수 살펴보기 – artragis

답변

2

PHP를 사용하면 같은 emptyisset을 사용할 수 있습니다 :이 설정되지 않은 경우 empty는 false를 돌려줍니다으로

if (!isset($_GET['name']) || empty($_GET['name'])) { 
    // Error detection, this field isn't available 
} 

는, 그 isset이 예에서 실제로 중복되어 있습니다.

if (!empty($_GET['name'])) { 
    // make your query 
} 
0

를 찾을 수 있습니다.

<?php 
$first = TRUE; 
$var_names = array('name', 'age', 'gender'); 

$query = "SELECT * FROM table WHERE" 

foreach($_GET as $key => $value) { 
    if(in_array($key, $var_names) && !empty($_GET[$key])) { 
     if($first) { 
      $query .= sprintf(" %s = '%s'", $key, $value); 
      $first = FALSE; 
     } else { 
      $query .= sprintf(" AND %s = '%s'", $key, $value); 
     } 
    } 
} 
if($first) { die('no parameters given, query will error out.'); } 
echo $query; 

이것은 또한 SQL 주입에 몹시 불안,하지만 난 여기 매개 변수화 된 쿼리를 실행하지 않을거야.

0

이 상자 밖에서 생각 :

문서는 그냥이 같은 변수 내용을 확인할 수 있습니다 herehere

관련 문제