javascript - 将字符串添加到变量会在 javascript onkey 函数中添加 "\"

标签 javascript php string-concatenation

我对 php 和 javascript 比较陌生,我知道我犯了一些愚蠢的错误。但是,我的问题是,如果我将字符串添加到变量中,它会在 ' this 之前添加“\”。 我的 JavaScript 函数:

$('#search_name').keyup(function(){
  var search1 = $(this).val();

   search1="and user_name like '%"+search1+"%'";//Concatenate string

  if(search1 != '')
  {
    load_data(search1);

  }
  else
  {
    load_data();   
  }
});

我有一个 load_data 函数,其 url 是 fetch_user.php

$(document).ready(function(){
 load_data();
 function load_data(query)
 {
  $.ajax({
  url:"fetch_user.php",
  method:"post",
  data:{query:query},
  success:function(data)
  {
    $('#result').html(data);
  }
});
}

现在在我的 fetch_user.php 上,我正在回显连接字符串并添加“\”

if(isset($_POST["query"]))
{
 $search = mysqli_real_escape_string($con, $_POST["query"]);
 echo $search; 
}

输出为且用户名类似于\'%k%\' 相反,它应该是和 user_name like '%k%' 那么,我在这里做错了什么。

谢谢

最佳答案

mysqli_real_escape_string 函数通过添加/转义所有引号。

但是,您不应该在 Javascript 中构建查询并将其传递给 php。相反,仅通过 POST 传递搜索字符串。

您可以在 MySQL 中构建查询并将变量传递给 MySQL。

关于javascript - 将字符串添加到变量会在 javascript onkey 函数中添加 "\",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52077861/

相关文章:

javascript - 无法在 JavaScript 中删除数组元素

javascript - Kendo 模板复选框未触发点击事件

php - 如何在使用 JOIN 语句时按两个表中都存在的字段对行进行排序

r - 如何在 R 中的单个字符串中打印向量的所有元素?

c# - c#编译器如何连接字符串

javascript - 如果至少选中一个复选框,则按钮不可禁用

javascript - Angular js 中无法实例化模块错误

php - 在 PHP 中使用正则表达式替换空格

php - 为什么我无法在 laravel 中迁移

java - 如何在java中初始化一个字符串而不导致初始化导致程序出现问题?