【发布时间】:2016-02-09 21:54:06
【问题描述】:
我试图让以下代码工作。这是一个 ajax 调用,我在其中发送一个 json 编码的字符串“数据”:
<?php
require_once('connect.php'); // get values for mysqli-connect
$arr1 = json_decode($_GET['data']);
$arr = array_values($arr1);
if ($GLOBALS['TSFE']->loginUser) {
$mysqli = new mysqli($server,$user,$pw,$db);
if ($mysqli->connect_error) {
die('Error : ('. $mysqli->connect_errno .') '. $mysqli->connect_error);
}
//values to be inserted in database table
$var1 = "Hello World";
$var2 = 45;
$var3 = "an encoded array";
/*
$var1 = $arr[1];
$var2 = $arr[2];
$var3 = json_encode($arr[3]);
*/
$insert_row = $mysqli->query("INSERT INTO table_testing
(event, pid, myarray) VALUES ('$var1', '$var2', '$var3')");
if($insert_row){
print 'Success! ID of last inserted record is : ' .$mysqli->insert_id .'<br />';
}else{
die('Error : ('. $mysqli->errno .') '. $mysqli->error);
}
} else {
echo "User is NOT logged in!\n";
}
?>
我的问题是这段代码有效!它适用于存储在 $var1-3 中的三个值。它们保存在正确的表中。
但是-如果我尝试将注释掉的三个值从 $arr[1-3] 存储到 $var[1-3] 它不起作用?保存的三个值是''(空)、'0'和'NULL'。 我试图在声明 $arr 后立即将这些行放入:
echo $arr[1]."\n";
echo $arr[2]."\n";
echo json_encode($arr[3])."\n";
在控制台中打印了正确的值,因此它们是有效的并且存在。它是一个字符串、一个整数和一个数组。 什么是我忽略或不理解的?
【问题讨论】: