我要搜索ā,è..这个特殊字符并显示在页面中,但是当我搜索值时,它将转换为不同的字符。正在获取“未找到结果
我的html:
<form action="" method="GET">
<input type="text" name="name" id="name">
<input type="submit" name="submit">
</form>
这是我的php代码
<?php
$conn = mysqli_connect("localhost","root","","test2");
// Check connection
if (mysqli_connect_errno()){
echo "Failed to connect
to MySQL: " . mysqli_connect_error();
}
if(isset($_GET['submit'])){
$ksl = $_GET['name'];
$sql = "SELECT * FROM app WHERE texts LIKE '%$ksl%' ";
if($result = mysqli_query($conn, $sql)){
if(mysqli_num_rows($result) > 0){
while($row = mysqli_fetch_array($result)){
echo $row['texts'];
}
} else{
echo "No records matching your query were found.";
}
} else{
echo "ERROR: Could not able to execute $sql. " . mysqli_error($conn);
}
// Close connection
mysqli_close($conn);
}
?>
我的js代码
<script type="text/javascript">
$(document).ready(function() {
$('#name').keyup(function(){
var gk = $(this).val();
$.ajax({
type: 'GET',
url: 'test.php',
data: {
'submit': true,
'name' : gk,
},
success: function (data) {
$('#testa').html(data);
}
});
})
});
</script>
如何在搜索中使用特殊字符?
答案 0 :(得分:0)
据我所知,您无法在mysql中执行此操作。某些解决方法是使用HEX值来搜索这些重音,这是我很久以前使用的一种解决方法,虽然这不是理想的方法,但它确实可以做类似的事情
SELECT * FROM `app` WHERE `text` REGEXP '(s|š|Š|[sšŠ])(i|í|Í|[iíÍ])(r|ŕ|Ŕ|
. ř|Ř|[rŕŔřŘ])(e|é|É|ě|Ě|[eéÉěĚ])(n|ň|Ň|[nňŇ])(A|a|á|Á|ä|Ä|0|[AaáÁäÄ0])'
或者通过更多的研究,我找到了一种使用这种方法的方法
SELECT whateverYouWant
FROM app
WHERE text <> CONVERT(columnToCheck USING ASCII)
CONVERT(col USING charset)函数会将不可转换的字符转换为替换字符。这样,转换后的文本和未转换的文本将不相等。
请查看此链接以找到有关此信息的更多信息:https://dev.mysql.com/doc/refman/5.7/en/charset-repertoire.html