未定义的属性:第7行的C:\ wamp64 \ www \ try \ insert.php中的stdClass :: $ ecompany

未定义的属性:第7行的C:\ wamp64 \ www \ try \ insert.php中的stdClass :: $ ecompany

问题描述:

<?php 
$conn = mysqli_connect("localhost", "root", "", "mydb"); // Database Connection 
$data = json_decode(file_get_contents("php://input"));// Decoding data
echo '<pre>'; //Printing Array
print_r($data); 
echo '</pre>';
//Getting values in variables
$ename = mysqli_real_escape_string($conn,$data->ename);
$eemail = mysqli_real_escape_string($conn, $data->eemail);
$ecompany = mysqli_real_escape_string($conn, $data->ecompany);
$edesignation = mysqli_real_escape_string($conn, $data->edesignation);
// Inserting values into Database
mysqli_query($conn, "INSERT INTO employee('name', 'email', 'companyName','designation') VALUES('".$ename."','".$eemail."','".$ecompany."','".$edesignation."')");
?>    

Array Output is - stdClass Object([ename] => Rohit [eemail] =>xxxxxxx@gmail.com [ecompanyname] => Seven [edesignation] => Web & Graphic Designer)

Please help me , what can i do now ? What is stclass ??

Thanks alot

You are trying to get "ecompany", but that does not exist. $ecompany = mysqli_real_escape_string($conn, $data->ecompany);

In the object it is called "ecompanyname".

So do: $ecompany = mysqli_real_escape_string($conn, $data->ecompanyname);

An explanation of stdClass can be found here What is stdClass in PHP?

Actually the answer was in your question. The output of print_r() statement is:

Array Output is - stdClass Object([ename] => Rohit [eemail] => xxxxx@gmail.com [ecompanyname] => Seven [edesignation] => Web & Graphic Designer)

So that means your output object has ecompanyname instead of ecompany as using in the 7th line: $data->ecompany

So please change the 7th line to:

$ecompany = mysqli_real_escape_string($conn, $data->ecompanyname);

That's all!