2017-06-17 88 views
0

我知道已經有錯誤消息請求「SyntaxError:JSON.parse:line in unexpected character 1的JSON數據「,我已閱讀。不幸的是,我仍然無法在我的代碼中修復這個錯誤,儘管我認爲已經刪除了任何HTML代碼。有沒有人有想法?我很感謝每一個提示。 請不要驚訝,這個PHP文件還有其他文件,這就是爲什麼數據庫和數據都不顯示在這個數據庫中。PHP-mysqli-Database with json:SyntaxError:JSON.parse:JSON數據第1行第1列的意外字符

(喂同側, ICH韋斯DASS ES獻給死Fehlermeldung 「語法錯誤:JSON.parse:意外的字符位於第1行的JSON數據的第1列」。舍恩Anfragen gibt,模具ICH的mir durchgelesen HABE Leider HABE ICH Diesen表示Fehler in meinem Code bisher immer noch nicht behebenkönnen,obwohl ich dachte,jeglichen HTML-Code entfernt zu haben。Hat jemand von euch vielleicht eine Idee,or oder findet gar den Fehler? Bitte nicht wundern,zu dieser PHP Dateigehörennoch weitere Date Date在dieser Datenbank weshalb票數的 「學生」 weder回到名單Daten eingetragen在einer Tabelle angezeigt werden NOCH)

代碼:

<?php 
//Fehlermeldung: SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data 
header('Content-Type: application/json'); 

$host = 'localhost'; 
$user = 'root'; 
$password = ''; 
$database = 'mmn1617'; 

$c = mysqli_connect($host, $user, $password, $database); 

/* 
* here's a query that creates a table "students" if it does not exist already. 
* The table contains a PersonID, the primary key which will be automatically incremented 
*/ 
$createstudentsQuery = "CREATE TABLE IF NOT EXISTS students(
    ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT, 
    firstName VARCHAR(255) NOT NULL, 
    lastName VARCHAR(255) NOT NULL, 
    semester VARCHAR(255) NOT NULL, 
    course VARCHAR(255) NOT NULL, 
    grade DOUBLE NOT NULL 
)"; 

//we execute the query here, the result is returned to the $result 
$result = mysqli_query($c, $createstudentsQuery); 

/*result will be "true" if the query was successful 
Note: The query doesn't contain the PersonID, because 
it will be automatically created by MySQL*/ 

if (!$result) { 
    //the $createstudentsQuery/selectStudentsQuery somehow failed. 
    echo "Could not create students table"; 
} else{ 
    echo "Students table ist working."; 
} 

//array missingParameters wird angelegt 
$missingParameters = array(); 

//hier wird überprüft ob etwas gepostet wurde 
if(isset($_POST['firstName'])&&isset($_POST['lastName'])&&isset($_POST['semester'])&&isset($_POST['course'])&&isset($_POST['grade'])){ 

//wenn inputs nicht leer sind, wird die Eingabe einer Variable übergeben 
if (!empty($_POST['firstName'])){ 
    $firstName = $_POST['firstName']; 
}else{ 
    $missingParameters [] = 'firstName'; 
}if (!empty($_POST['lastName'])){ 
     $lastName = $_POST['lastName']; 
}else{ 
    $missingParameters [] = 'lastName'; 
} 
if (!empty($_POST['semester'])){ 
    $semester = $_POST['semester']; 
}else{ 
    $missingParameters [] = 'semester'; 
} 
if (!empty($_POST['course'])){ 
    $course = $_POST['course']; 
}else{ 
    $missingParameters [] = 'course'; 
} 
if (!empty($_POST['grade'])){ 
    $grade = $_POST['grade']; 
}else{ 
    $missingParameters [] = 'grade'; 
} 

/**wenn das array missingParamater nicht leer ist, also eine Eingabe fehlt*/ 
if (!empty($missingParameters)) { 
    echo "Please enter an information."; 
    //array missingParameters wird in der Variable responseArray gespeichert 
    $responseArray = array("missing parameters"=>$missingParameters); 
    //und mit der Methode json_encode als json ausgegeben 
    echo json_encode($responseArray); 

/**wenn die Eingaben vollständig sind, werden die Werte in der Tabelle gespeichert*/ 
} else { 
    $insertstudentsQuery = "INSERT INTO students(firstName, lastName, semester, course, grade) 
    VALUES('$firstName', '$lastName', '$semester', '$course', '$grade')"; 

    $insertResult = mysqli_query($c, $insertstudentsQuery); 

    //This tells the client that the data was successfully inserted. 
    $responseArray = array("message"=>"OK"); 
    echo json_encode($responseArray); 

} 

} >

回答

0

這幾乎肯定會發生,因爲:

  1. 畸形的JSON,和/或
  2. 空字符串返回而不是JSON

一個辦法開始調試這是...做類似的事情:

if (json_received =="") json_received = "{}"; 

這提供了一個臨時的最小公分母JSON值{}(空物體)

如果它開始工作,你將是100%肯定它是畸形的JSON。

其他需要考慮的事情:

  1. 是否設置爲UTF-8 MySQL數據庫格式?
  2. 在將它傳遞給JSON解析/編碼函數之前,您是否嘗試過記錄$ responseArray
+0

嗨InfiniteStack,謝謝你的回答!我發現我必須刪除「回聲」,現在Json工作正常。謝謝你的幫助! – MiHei

+0

很高興知道:)看起來像預期的JSON格式的輸出,但有常規字符串文本。 – InfiniteStack

相關問題