मेरे php कोड इस तरह दिखता है:पीएचपी print_r काम करता है, लेकिन json_encode रिटर्न खाली
$header = "Content-Type: application/json";
header($header);
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * ...";
$result = $conn->query($sql);
$array_1 = array();
if ($result->num_rows > 0) {
// output data as array
while($row = $result->fetch_assoc()) {
array_push($array_1, $row);
}
}
$conn->close();
print_r($array_1);
कौन मेरा पीछा ouput देता है:
Array
(
[0] => Array
(
[user_email] => [email protected]
[order_item_name] => Abonnement
)
[1] => Array
(
[user_email] => [email protected]
[order_item_name] => Verlängerung
)
)
यह आउटपुट ईमेल द्वारा एक प्रश्न का परिणाम है, उत्पाद का नाम वापस करने के लिए। इस मामले में, यदि मैं print_r
echo json_encode
के साथ बदलता हूं तो कुछ भी दिखाई नहीं देता है। यह मुझे विश्वास है समस्या यह देखते हुए कि परिणाम खाली नहीं है चारसेट से कोई लेना देना नहीं है बनाता है, तो मैं कहा:
$header = "Content-Type: application/json; charset=utf-8";
header($header);
फिर भी प्रयास विफल। मैं पढ़ रहा हूं कि यह मामला हो सकता है कि जेसन * फ़ंक्शंस अक्षम हैं, हालांकि, अगर मैं अपनी क्वेरी से ईमेल बदलता हूं तो यह print_r
और echo json_encode
का उपयोग कर जेसन के रूप में परिणाम दिखाता है। यह इस परिणाम से समस्या की जड़, या किसी भी समान परिदृश्य से होना चाहिए। क्या यह परिणाम ä के परिणाम से हो सकता है? यह है कि मैंने हेडर में utf-8 क्यों जोड़ा।
जैसा कि मैंने उपरोक्त कहा है, अगर मैं ईमेल बदलता हूं तो यह काम करता है, लेकिन यह "[email protected]" का उपयोग करते समय केवल 1 परिणाम दिखाता है। क्या यह हो सकता है कि परिणाम सरणी में सही ढंग से नहीं डाले गए हैं? मुझे विश्वास नहीं है कि print_r
क्वेरी परिणाम सही ढंग से स्वरूपित करता है।
क्या किसी को पता है कि क्या हो रहा है?
देखने का उपयोग कर क्या 'var_dump का उत्पादन होता है अपने
order_item_name
मूल्यों सांकेतिक शब्दों में बदलना होगा ($ array_1) '? var_dump डीबग करने के लिए हमेशा अधिक सहायक होता है;) –'$ json_string = json_encode ($ array_1) आज़माएं; var_dump ($ json_string); ' – Brian
दोनों, var_dump ($ array) करें; फिर json_encode ($ सरणी) गूंजें; कोई कारण नहीं है कि यह काम नहीं करता है। यदि कोई फ़ंक्शन मौजूद नहीं है, तो आपको एक फ़ंक्शन का उपयोग कर एक चेतावनी/त्रुटि मिलती है जो यह मौजूद नहीं है। सुनिश्चित करें कि आप error_reporting (E_ALL) का उपयोग करके सभी चेतावनी प्रदर्शित करते हैं; – Loenix