如何通过ajax获取值选择并插入SQL

Posted

技术标签:

【中文标题】如何通过ajax获取值选择并插入SQL【英文标题】:How to take the value select and insert into SQL via ajax 【发布时间】:2021-10-23 21:48:35 【问题描述】:

目标: 选择一个选项并通过 ajax 获取其值并插入到查询中。 感谢您的帮助。

bugs_cards.php

<div class="filtros-categoria-sistema">
                <select id="session" name="session"  class="form-control">
                  <option value='' selected >Selecione o Sistema</option>
                  <option value='00000000001'>teste 1</option>
                  <option value='00000000002'>teste 2</option>
                </select> 
              </div>

SQL

if (isset($_POST['workselected1'])) 
  $workselected = $_POST['workselected1'];



$SyntaxTransactionRotas = "SELECT * FROM sup_cad_bugs_cards where painel_COD = $workselected AND card_status = 'EN' AND card_nome $nome AND card_tipo_COD $categoria  ";    

AJAX

   $('#session').on('change', function(e)
    var workselected = $(this).val();
    $.ajax(
      method: "POST",
      url: "bugs_cards.php",
      data: workselected1: workselected,
      cache:false,
      success: function(data)
        console.log(data);
      
    );
  );

【问题讨论】:

具体问题是什么?猜测一下,您需要在 SQL 语句中包含的值周围加上引号,并在 where 子句中的值之前使用 = 运算符。您应该注意的主要事项是您的 PHP 对 SQL 注入攻击完全开放。您应该更改该逻辑以使用准备好的语句。 问题且选择选项1时,不通过ajax发送到php变量的值0000000000以插入SQL并执行查询。在这种情况下,where 子句查询应该是“SELECT * FROM sup_cad_bugs_cards WHERE painel_COD = 00000000001 .. 【参考方案1】:

试试下面的 sql 查询:

$SyntaxTransactionRotas = "SELECT * FROM `sup_cad_bugs_cards` where `painel_COD` = '$workselected' AND `card_status` = 'EN' AND `card_nome` =  '$nome' AND `card_tipo_COD` = '$categoria'  "; 

提示:尝试使用准备好的语句,因为此 sql 查询容易出现 sql 注入

【讨论】:

以上是关于如何通过ajax获取值选择并插入SQL的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 fullcalendar 使用 AJAX 将引导模式输入插入到 SQL 表中

我无法从通过 Ajax 创建的选择元素中设置值或获取值

用sql语句如何获取当前时间,如何通过写sql语句改变数据库中的值如何通过写sql语句把数据从数据中提取出来

如何通过javascript中的ajax调用传递blob值?

如何使用 laravel 通过 jquery ajax 将表单值插入数据库?

如何在通过变量搜索时从一个表中选择 user_ID 并插入到另一个表中? Python 我的 SQL