我对 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/