我试图让以下代码工作。这是一个ajax调用,我发送一个json编码的字符串'data':
<?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";
在控制台中打印正确的值,因此它们有效且存在。它是一个字符串,一个整数和一个数组。 我忽略或不理解的是什么?
答案 0 :(得分:0)
PHP arrays start的索引从0开始。
尝试使用此代码:
echo $arr[0] . "\n";
echo $arr[1] . "\n";
echo json_encode($arr[2]) . "\n";