2012-03-06 3 views
0

은 내가 csv -like 데이터를 사용하여 MySQL의 테이블에 insert/update 데이터를 원하는 :PHP에서 문자열을 정수로 변환하는 방법은 무엇입니까?

function execInsertOrUpdateCompteRendu($compterendu) // here $compterendu is something like this : -1;2012/03/06 09h 50mn;3;1; 
{ 
     $resultat = explode("\n",$compterendu); 
     $connec = mysql_connect("192.168.1.123:3306","root", "mysqlroot"); 
     mysql_set_charset('utf8', $connec); 
     mysql_select_db("finance",$connec); 
     for($i = 0; $i < count($resultat) ; $i++) 
     { 
      $valeur=explode(";",$resultat[$i]); 
      if ($valeur[0] > 0) 
      { 
       $requete = mysql_query("UPDATE compte_rendu SET 
       cr_date = '".convertFromDateHM($valeur[1])."', 
       cr_lieu = '".$valeur[2]."', 
       cred_id = '".$valeur[3]."', 
       cr_resultat = '".$valeur[5]."', 
       cr_comment = '".$valeur[6]."', 
       adc_id = '".$valeur[7]."' 
       WHERE cr_id = '".$valeur[0]."'"); 
      } 
      else 
      { 
       $requete = mysql_query("INSERT INTO compte_rendu SET 
             cred_id = '".$valeur[3]."', 
             cr_date = '".convertFromDateHM($valeur[1])."', 
             cr_lieu = '".$valeur[2]."', 
             cr_resultat = '".$valeur[5]."', 
             cr_comment = '".$valeur[6]."', 
             adc_id = '".$valeur[7]."'"); 
      } 
     } 
     return $resultat[0]; 
} 

PHP 코드는 내가 J2ME 클라이언트에서 부르는 web-service이다. 문제는 J2ME 애플리케이션을 실행할 때 새로운 데이터가 테이블에 삽입되지 않는다는 것입니다. 자바 프로그램을 디버깅했는데 오류가 없습니다. 내 PHP 코드에서 무엇이 잘못 되었습니까?

+0

최종 쿼리는 어떻게 생깁니 까? 오류가 있는지'mysql_error'를 확인 했습니까? – deceze

+0

서버 오류 로그에 오류가 있습니까? 그렇다면 질문에 게시하십시오. – DKSan

+0

삽입/업데이트 한 모든 내용이 검색어에 따옴표로 묶입니다 (필요 없음). 나는 당신이 string-> integer와 관련하여 ID에 대해 이야기하고 있다고 가정 할 것입니다. 따라서 어떤 섹션에서는'adc_id = ". $ valeur [7] 대신에'adc_id =". $ valeur [7]. "이 있어야합니다."''. 그러나 처음에는 준비된 문을 사용해야합니다. – Kurt

답변

0

먼저 데이터베이스에 입력하는 모든 텍스트를 mysql_real_escape_string으로 이스케이프 처리하십시오. 그렇지 않으면 문제가 발생할 가능성이 있습니다. 예 :

//cr_lieu = '".mysql_real_escape_string($valeur[2])."', 

또한 - 문자열을 정수로 변환 하시겠습니까?

$int = (int)$string; 
1

MySQLi 준비 문을 사용하십시오. 그런 다음 매개 변수를 정수, 복식, 문자열 또는 얼룩으로 바인딩 할 수 있습니다. Mysqli Manual을 읽고 bind_param 섹션을 바인딩하는 것에 대해 읽으십시오.

쿼리와 관련하여 : 정수 값을 따옴표로 묶지 않아도됩니다.

관련 문제