2011-09-16 3 views
1

PHP로 개발 컴퓨터에서 개발 중이며 데이터베이스에 원격으로 연결 중입니다. 파일을 서버에 업로드하고 쿼리가 예상대로 작동하지만 localhost에서는 쿼리가 작동하지 않습니다. 다른 모든 쿼리가 작동합니다!업데이트 PHP를 통해 쿼리 지우기 결과

데이터베이스에 새 레코드를 삽입하거나 이미 존재하는 경우 업데이트하는 코드 블록이 있습니다. ...

  $name = mysql_real_escape_string($_REQUEST['name']); 
      $title = mysql_real_escape_string($_REQUEST['title']); 
      $content = $_REQUEST['content']; 
    $lang_drop = mysql_real_escape_string($_REQUEST['lang']); 
      if($uid == 0) 
      { 
       $maxSort = tools::getInfo($table, Array(), Array('MAX(sort_order) as sort_order')); 
       $maxSort = $maxSort[0]['sort_order']+1; 
        $sql="insert into quemsomos (title,name,lang,sort_order) 
          values(
           '$title', 
           '$name', 
           '$lang_drop', 
           $maxSort 
          )"; 
         echo $sql; 
        mysql_query($sql); 
        $uid = mysql_insert_id(); 
      } 
      else{ 
$maxSort = $data['sort_order']; 
        $sql="update `quemsomos` set `title`='blabkalm', `name`='{$name}', `lang`='{$lang_drop}', `sort_order`=$maxSort where `uid`={$uid}"; 
        mysql_query($sql); 
        echo $sql; 
       } 

매우 간단 나는 새 레코드를 삽입하는 경우 그것을 잘 작동 및 인쇄 SQL 값이 $ :

코드는

insert into quemsomos (title,name,lang,sort_order) values('title412', 'name421', 'pt', 3) 

문제는 내가 업데이트 할 때이다 쿼리가 실행되지만 하드 코딩 된 값만 데이터베이스에 저장됩니다. 내 말은, 벨로 우기 업데이트 후 DB의 모든 값은 저장되고있는 sort_order를 제외하고는 비어 있습니다. (하드 코딩 된 문자이기 때문에 ... 필드가 비어있는 올바른 변수를 넣을 경우)

echo $ sql 업데이트 문은 반환 다음

update `quemsomos` set `title`='blabkalm', `name`='name421', `lang`='pt', `sort_order`=3 where `uid`=2 

당신이 ... 모든 값이 거기에 내가 수동으로이 쿼리를 실행하면 모든 밖으로 잘 작동 볼 수 있습니다

사람이 메이크업 감각처럼?

답변

0

나는

`uid`={$uid}"; 

괜찮되지 않습니다이 부분을 생각합니다. 다음과 같이 매우 확신 할 수 있습니다.

$sq='\''; 
$sql="update `quemsomos` set `title`='blabkalm', `name`=".$sq.$name.$sq.", `lang`=".$sq. 
$lang_drop.$sq.", `sort_order`=".$sq.$maxSort.$sq." where `uid`=".$sq.$uid.$sq." "; 

이 것이 작동해야합니다.

다른 것은 .. MySQL의 오류가 오류가 발생할 출력을 디버깅에 많은 도움이 될 수 있습니다, 그것을 사용하는 것을 잊지 마세요 :

mysql_query($sql) or die(mysql_error()); 
+0

안녕하세요! 답장을 보내 주셔서 감사합니다. 나는 단지 그것을 monday에 시험해 볼 수있다. .. 내가 그것을해야하지 않았지만 나는 지금 모든 것을 믿는다.) 나는 당신에게 앙갚음을 할 것이다! 감사 – jribeiro