2013-12-19 2 views
0

어떤 이유로이 코드의 출력이 표시되지 않습니다. 특히이 if 문에서 : 테스트 단어가있는 html 태그를 삽입했지만 출력에 나타나지 않았습니다. "SELECT"오타가 수정되었습니다 .. 여전히 동일한 결과를 얻고 있습니다 .. 출력이 없습니다 .. 문제는이 문장에서 비롯된 것 같습니다.PHP sql이 출력되지 않습니다.

$db = new PDO("mysql:dbname=university", "root", ""); 

내가 바로 전에 다른 테스트 문구를 삽입 - 성공과 그 직후에 또 다른 하나 - 한을 출력하지

 if($sel=="getinfo"){ 
        try { 
        $db = new PDO("mysql:dbname=university", "root", ""); 
        $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
        $rows = $db->exec("SEEELECT * FROM fminformationtable WHERE FM_ID = '$_POST[iden]'"); 
        ?> 
        test 
        <?php 
        } 

이 전체 기능을이다

if($sel=="addnew"){ 
    try { 
       $db = new PDO("mysql:dbname=university", "root", ""); 
       $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
       $rows=$db->query("INSERT INTO fminformationtable 
       VALUES('$_POST[iden]','$_POST[lname]','$_POST[fname]','$_POST[office]','$_POST[ext]','$_POST[hphone]','$_POST[mobile]','$_POST[address]','$_POST[email]','$_POST[syear]','$_POST[tyear]','$_POST[ldegree]','$_POST[ofrom]','$_POST[dyear]','$_POST[rinterest]')"); 

      } 
      catch (PDOException $ex) { 
      ?> 
      <p>Your information has been submitted! </p> 
      <?php 
      } 
      if($sel=="update"){ 


       try { 
        $db = new PDO("mysql:dbname=university", "root", ""); 
        $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 



        $rows=$db->query("UPDATE fminformationtable SET 
        Office=`$_POST[office]`, 
        Extension=`$_POST[ext]`, 
        HomePhone=`$_POST[hphone]', 
        MobilePhone=`$_POST[mobile]`, 
        Adress=`$_POST[address]`, 
        Email=`$_POST[email]`, 
        StartingYear=`$_POST[syear]`, 
        TerminationYrear=`$_POST[tyear]`, 
        LatestDegree=`$_POST[ldegree]`, 
        ObtainedFrom=`$_POST[ofrome]`, 
        DegreeYear=`$_POST[dyear]`, 
        ResearchInterest=`$_POST[rinterest]` 

        "); 

        } 


       catch (PDOException $ex) { 


       } 
     } 
     } 
     if($sel=="delete"){ 
      try { 
        $db = new PDO("mysql:dbname=university", "root", ""); 
        $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
        $rows = $db->exec("DELETE FROM fminformationtable WHERE FM_ID = '$_POST[iden]'"); 


      } 
      catch (PDOException $ex) { 

       } 
     } 

     if($sel=="getinfo"){ 
        try { 
        $db = new PDO("mysql:dbname=university", "root", ""); 
        $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
        $rows = $db->exec("SEEELECT * FROM fminformationtable WHERE FM_ID = '$_POST[iden]'"); 
        ?> 
        test 
        <?php 
        } 
+3

'SEEELECT'는 오타가 될 수 있습니다 ... 던져지며 결코 잡히지 않습니다! –

+2

그리고'POST' 변수를 직접 쿼리에 삽입하는 것은 큰 실수입니다. 당신은 SQL 인젝션을 읽을 필요가있다. 이미 PDO를 사용하고 있으므로 바운드 변수로 준비된 문으로 전환하는 것은 쉽습니다. – jeroen

+0

@EugenRieck, 네, 그렇습니다. – brian

답변

2
  1. 당신에게 작은 따옴표 대신 백틱을 사용하고 있습니다.
  2. 함수 반환이 한 번 실패했는지 확인하지 못합니다.
  3. catch 블록이있는 try 블록을 사용하면 알고있는 정보를 간단히 삭제할 수 있습니다. 예를 들어, 코드에서 데이터를 반환하지 않는 오류.
  4. SEEEELECT은 MySQL 작업이 아닙니다. 또 다른 덩어리를 작성, 테스트, 1-3 라인의 덩어리에 코드를 작성하여 테스트하고 :
  5. 당신은 당신이 {$array['index']}

제안을 사용하지 않는 이중 인용 된 문자열 내에서 배열 인덱스를 확장 할 수 없습니다 곧. 이 코드는 테스트되지 않은 장면에서 모두 작성된 것처럼 보입니다.

기타 : yadda yadda SQL 삽입, 매개 변수가있는 쿼리 등.

관련 문제