无法从Google App Engine上的Php PDO获取响应标头

时间:2015-03-31 16:19:57

标签: php google-app-engine http pdo

我尝试在将一些数据插入数据库后发送回最后插入的ID。我成功将数据输入数据库,但没有发回任何响应数据。我使用的是Php PDO,它托管在Google App Engine上,我的标题设置为dbconnect.php文件中的application / json。我需要添加什么才能成功发回响应数据。

<?php
    require('dbconnect.php');
    $statement=$con->prepare('INSERT INTO customers (fname, lname) VALUES (:fname,:lname)');
    $statement->execute(array(':fname' => $_POST['fname'], ':lname' => $_POST['lname'] ));
    $orderId = $statement->lastInsertId();
    $json = $json_encode($orderId);
    echo $json;
    $con = null;
?>

1 个答案:

答案 0 :(得分:2)

  

我收到通知:未定义索引:fname和注意:未定义索引:lname和致命错误:调用未定义方法PDOStatement :: lastInsertId() - Moustache_Me_A_Question 10分钟前

表单元素没有名称属性。

因此,您需要将它们添加到元素中。

以下是您可以自行选择的示例表单:

<form action="" method="post">
    First name:
    <input type="text" name="fname">
<br>
    Last name:
    <input type="text" name="lname">
<br>
    <input type="submit" name="submit" value="Submit">
</form>

这就是为什么你得到未定义的索引通知。


$json = $json_encode($orderId);应该读作$json = json_encode($orderId); - json_encode()不应该是变量,而应该是函数本身。

此外:

$orderId = $statement->lastInsertId(); 

$orderId = $con->lastInsertId();

这就是你收到这条消息的原因:

  

致命错误:调用未定义的方法PDOStatement :: lastInsertId()

  • lastInsertId()是PDO类的方法,而不是PDOStatement类。
在谷歌搜索错误时,我在Bill Karwin的回答中找到了