無論發生什麼奇怪的原因,我都無法搜索非英文字符。腳本死亡。我想,它在搜索中死亡。空白頁面,佈局的一半,PHP腳本後沒有。PHP UTF-8搜索不起作用
代碼是從一個工作網站(我自己的),減去佈局複製,所以它應該工作。但事實並非如此。
在search.php中:
<meta charset='utf-8' />
在形式:
<form action='search.php' method='get' accept-charset='utf-8'>
在db_connect.php:
mysqli_set_charset($db_connect, "utf8");
在數據庫: utf8_general_ci
什麼否則我錯過了?
的search.php(結果頁面):
<?php
include ("php/form.php");
$searchTerm = trim ($_GET['keyname']);
if (!empty ($searchTerm)) {
if (strlen ($searchTerm) > 2) {
include "php/search.php";
} else {
echo "<h1>Enter 3 or More Characters</h1><hr />$search_form";
};
} else {
echo "<h1>Enter Search Term</h1><hr />$search_form>";
};
?>
PHP/search.php中:
$query = "SELECT * FROM members WHERE first_name LIKE '%$searchTerm%' OR
last_name LIKE '%$searchTerm%' OR
date LIKE '%$searchTerm%'";
$results = mysqli_query ($db_connect, $query)
or die (mysqli_error (db_connect));
if (mysqli_num_rows ($results) >= 1) {
$record = "";
while ($row = mysqli_fetch_array ($results)) {
include "result.php";
} echo $record . "<hr />$search_form</main>";
} else {
echo "<h1>0 Matching Records</h1><hr />$search_form";
};
錯誤:
'喜歡'
排序規則進行操作的非法搭配
排序規則進行操作的非法混合'mysqli'是過時的使用PDO來代替。並且不要忘記清理您的輸入。 – iamawebgeek
它究竟如何不工作?它會給出錯誤嗎?還是它返回一個空集? –
使用'mysql_escape_string()'爲'$ searchTerm' – Samir