【问题标题】:can't insert in database using web service无法使用 Web 服务插入数据库
【发布时间】:2014-07-15 19:29:21
【问题描述】:

当我尝试使用我的 Web 服务向我的数据库中插入内容时遇到问题。 我有这个:

index.php

<div class="modal-body">
                  <form id="wineForm">

                        <label>Id Selecao:</label>
                        <input type="text" id="id_selecao" name="id_selecao"/>

                        <label>Nome:</label>
                        <input type="text" id="nome" name="nome"/>

                        <label>Idade:</label>
                        <input type="text" id="idade" name="idade"/>

                        <label>Clube:</label>
                        <input type="text" id="clube" name="clube"/>
                  </form>
                </div>

                <div class="modal-footer">
                  <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                  <button id="btnAdd" type="button" class="btn btn-primary">Add</button>
                </div>

...

 <script type="text/javascript">
    var rootURLPessoas = "http://localhost/aw014/webservice/services/pessoas";

    function addPessoa() {
            console.log('addPessoa aquiiiiiiii');
            $.ajax({
                type: 'POST',
                contentType: 'application/json',
                url: rootURLPessoas + '/add',
                dataType: "json",
                data: formToJSON(),
                success: function(data, textStatus, jqXHR){
                        alert('Person created successfully');
                        console.log("dsdkasdajhdjkas", data.id_selecao);
                        //$('#wineId').val(data.id);
                },
                error: function(jqXHR, textStatus, errorThrown){
                    alert('addWine error: ' + textStatus);
                }
            });
        }

    function formToJSON() {
    return JSON.stringify({

        "id_selecao": $('#id_selecao').val(), 
        "nome": $('#nome').val(), 
        "idade": $('#idade').val(),
        "clube": $('#clube').val(),
        "posicao": $('#posicao').val()
        });
    }


    jQuery(document).ready(function ($) {
            $('#tabs').tab();

        $('#btnAdd').click(function() {
           addPessoa();
        });
    });

    </script>

服务.php

function addPessoa(){
    $request = \Slim\Slim::getInstance()->request();
    $pessoa = json_decode($request->getBody());
    $sql = "INSERT INTO pessoa (id_selecao, nome, idade,clube, posicao) values (:id_selecao, :nome,:idade,:clube,:posicao) ";
    $conn = getConn();
    $stmt = $conn->prepare($sql);
    $stmt->bindParam("id_selecao",$pessoa->id_selecao);
    $stmt->bindParam("nome",$pessoa->nome);
    $stmt->bindParam("idade",$pessoa->idade);
    $stmt->bindParam("clube",$pessoa->clube);
    $stmt->bindParam("posicao",$pessoa->posicao);
    $stmt->execute();
    $pessoa->id = $conn->lastInsertId();
    $conn= null;
    echo json_encode($pessoa);
}

因此,当我填写所有字段并单击“添加”按钮时,请给我警报 Person created successfully。但是当我检查数据库时没有插入任何内容,也不知道为什么。

【问题讨论】:

  • addPessoa php函数在哪里调用?

标签: php jquery mysql ajax web-services


【解决方案1】:

当您到达成功函数时,仅表示 php 脚本已成功运行/没有任何致命错误。

您应该将错误处理添加到您的数据库调用中,并将该信息添加到您从脚本返回的 json 对象中。

然后你可以做一个console.log(data); 看看到底发生了什么。当然也可以在浏览器的开发者工具中查看脚本返回的内容。

在脚本顶部启用错误显示 ini_set('display_errors',1); 可能会使您的 json 无效(假设有警告),但它会准确告诉您出了什么问题,尤其是在您设置 PDO 以引发异常的情况下。

【讨论】:

  • 感谢您的帮助,我按照您所说的去做了consolo.log(data),但我找不到错误...我忘记在我的代码中添加标签Posicao html。谢谢:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-08
  • 2013-12-19
  • 2018-09-01
  • 2012-12-03
  • 2013-04-22
  • 2011-06-08
相关资源
最近更新 更多