mysqli插入类型值但不插入变量

时间:2016-02-09 21:54:07

标签: variables mysqli insert

我试图让以下代码工作。这是一个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";  

在控制台中打印正确的值,因此它们有效且存在。它是一个字符串,一个整数和一个数组。 我忽略或不理解的是什么?

1 个答案:

答案 0 :(得分:0)

PHP arrays start的索引从0开始。

尝试使用此代码:

echo $arr[0] . "\n";
echo $arr[1] . "\n";
echo json_encode($arr[2]) . "\n";