2011-07-29 5 views
0

I 다음 스키마 있습니다JSONKit - MySQL 데이터베이스에 PHP로 JSON 문자열을 구문 분석 내 데이터베이스에서

답변 :

answerId(PK) auto_inc 
answer 
questionId 

내 PHP 파일에 다음 JSON 문자열을 전달하고있다 :

[{"answer":"bnk","questionId":"1"},{"answer":"1","questionId":"2"},{"answer":"b n","questionId":"3"},{"answer":"3","questionId":"4"},{"answer":"rgb","questionId":"5"},{"answer":"No","questionId":"6"},{"answer":"0","questionId":"7"},{"answer":"0","questionId":"8"},{"answer":"0","questionId":"9"},{"answer":"0","questionId":"10"},{"answer":"0","questionId":"11"},{"answer":"0","questionId":"12"},{"answer":"0","questionId":"13"},{"answer":"0","questionId":"14"},{"answer":"3","questionId":"18"},{"answer":"nko","questionId":"19"},{"answer":"hhkl","questionId":"15"},{"answer":"2","questionId":"16"},{"answer":"vnlf hugg","questionId":"17"}] 
은 $ _POST [ '답변']에 게시물 요청을 통해 캡처 :

if(isset($_POST['submitanswer'])){ 
    $dbh = connect(); 
    $user = $_POST['user']; 
    $entry = $_POST['entryId']; 
    $answers = $_POST['answers']; 
    $answers = json_decode($answers); //decode JSON answers 

    //for loop to iterate through answers ans insert new row into database 
} 
,536,

답변 배열을 반복하고 답변 테이블에 새 행을 삽입하려면 어떻게해야합니까? 같은

뭔가 :이 코드는 제대로 작동되지 않으면

foreach($answers as $row){ 
    $query = "INSERT INTO Answers (answer, questionId) VALUES ($row['answer'], $row['questionId'])"; 
    mysql_query($query); 
} 

답변

1

는,이 시도가 :

foreach($answers as $row){ 
$query = "INSERT INTO Answers (answer, questionId) VALUES (".$row['answer'].", ".$row['questionId'].")"; 
mysql_query($query); 
} 

그렇지 않으면, 여기 아무 잘못을 발견 할 수 없다.

0

알고 계시 겠지만 연결 문자열이 올바른지 확인하십시오.

사실 이것은 내가하는 일입니다. 아마도 당신을위한 정보가 많을 것입니다. 또한 SQL에서 모든 연결을 수행하므로 테스트 필드를 쉽게 주석으로 처리 할 수 ​​있습니다.

$Link = mysql_connect($Host , $User , $Password , $DBName); 

if (!$Link) { 
    die('Could not connect: ' . mysql_error()); 
} 



$sql = "insert into table " 
       ."(" 
        ."hashfirstName"."," 
        ."hashfamilyName"."," 
        ."hashemailAddress" 
        .")" 
       ."values (" 
        ."'$firstNameHashed'"."," 
        ."'$familyNameHashed'"."," 
        ."'$emailAddressHashed'" 
        .")"; 

mysql_select_db($DBName , $Link) or die("Database error in insertdata<br>"."Error #" . mysql_errno() . ": " . mysql_error()); 



      if(!mysql_query($sql , $Link)) 
      { 
       $errors['sql'] = $sql; 
       $errors['DBName'] = $DBName; 
       $errors['Link'] = $Link; 
       $errors['status'] = "false"; //There was a problem saving the data; 
       echo json_encode($errors); 
      } 
      else 
      { 
       $errors['status'] = "true"; 
       echo json_encode($errors); 
      }; // if(!mysql_query($DBName , $sql , $Link))