提问者:小点点

如何使用Volley[closed]从数据库mysql中删除特定记录


我试图通过使用来自android的Volley从数据库mysql中删除一个特定的记录,其代码为MARKET_id=MARKET_id和useridseein=useridseein。

代码现在可以工作了,但问题是他一次删除了所有记录。

我需要删除一个特定的记录。

我将Volley url中特定记录的数据传递为UserIdseein和market_id。

像这样:


       String i_upd_url = "http://=========/end/dr.php?markte_id=" + markte_id + "&UserIdSessin=" + UserIdSessin;

我的php代码

<?php

    $servername = "localhost";
    $username = "root";
    $password = "";
    $dbname = "test";

    $conn = mysqli_connect($servername, $username, $password, $dbname);
    if ($conn) {
$markte_id = $_POST["markte_id"];
    $UserIdSessin = $_POST["UserIdSessin"];

        $sql = "DELETE from favorite where markte_id = markte_id and UserIdSessin =UserIdSessin";


        if(mysqli_query($conn, $sql))
        {

            echo json_encode(array('response' => 'DELETE OK'));
        } else {
            echo json_encode(array('response' => 'DELETE NO'));
        }

    } else {
        echo json_encode(array('response' => 'Connection Error'));
    }

    mysqli_close($conn);
?> 

我的齐射密码

private void Deletefavaorit() {
        String i_upd_url = "http://=========/end/dr.php?markte_id=" + markte_id + "&UserIdSessin=" + UserIdSessin;
        StringRequest strreq = new StringRequest(Request.Method.POST,i_upd_url
                ,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String Response) {
                      Toast.makeText(getActivity(), Response , Toast.LENGTH_LONG).show();
                        Log.i(TAG, "ResponseTest"+Response.toString());
                    }
                }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError e) {
                e.printStackTrace();
            }
        });
        RequestQueue requestQueue = (RequestQueue) Volley.newRequestQueue(getActivity());
        requestQueue.add(strreq);
    }


}

当我尝试在url中查看数据时:


String i_upd_url = "http://======/end/dr.php?markte_id=" + markte_id + "&UserIdSessin=" + UserIdSessin;

Log.i(TAG, "ResponseTest"+i_upd_url.toString());

我得到数据:

ResponseTesthttp://=======/end/dr.php?markte_id=83&UserIdSessin=31

我还检查了截击的反应,得到了这个错误

<font size='1'><table class='xdebug-error xe-notice' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
    <tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Notice: Undefined index: markte_id in C:\wamp64\www\end\dr.php on line <i>10</i></th></tr>
    <tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
    <tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>
    <tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0002</td><td bgcolor='#eeeeec' align='right'>401384</td><td bgcolor='#eeeeec'>{main}(  )</td><td title='C:\wamp64\www\end\dr.php' bgcolor='#eeeeec'>...\dr.php<b>:</b>0</td></tr>
    </table></font>
    <br />
    <font size='1'><table class='xdebug-error xe-notice' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
    <tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Notice: Undefined index: UserIdSessin in C:\wamp64\www\end\dr.php on line <i>11</i></th></tr>
    <tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
    <tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>
    <tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0002</td><td bgcolor='#eeeeec' align='right'>401384</td><td bgcolor='#eeeeec'>{main}(  )</td><td title='C:\wamp64\www\end\dr.php' bgcolor='#eeeeec'>...\dr.php<b>:</b>0</td></tr>
    </table></font>
    {"response":"DELETE OK"}

我的表中有3个字段:favoriteID markte_id UserIdSessin

如何根据MARKET_id和useridseein删除一个特定的记录? 或者我的代码中的错误是什么?


共1个答案

匿名用户

而不是$sql=“从收藏夹中删除,其中markte_id=markte_id和UserIdSessin=UserIdSessin”;

它应该是$sql=“从收藏夹中删除where markte_id=”.$markte_id。 “和userIdsessin=”.$userIdsessin;

编辑:这是一个快速解决问题的方法,但是您必须使用PDO或其他选项来保护自己不受SQL注入的影响。