我想做一個自動完成PHP與數據庫交互,但找到超過10個在線資源,不能使它與我的數據庫一起工作。 這裏是index.php的代碼:自動完成與MySQLi和PHP(通過自動完成的用戶界面)
<!doctype html>
<html>
<head>
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.1/themes/base/minified/jquery-ui.min.css" type="text/css" />
<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/ui/1.10.1/jquery-ui.min.js"></script>
<script>
$(function() {
//autocomplete
$("#model").autocomplete({
source: "search.php",
minLength: 1
});
});
</script>
</head>
<body>
<form action='' method='post'>
<p><label>Model:</label><input type='text' id="model" name='model' class='model'/></p>
</body>
</html>
這裏是search.php中:
<?php
define('DB_SERVER', 'localhost');
define('DB_USER', 'root');
define('DB_PASSWORD', '123456');
define('DB_NAME', 'inventory');
if (isset($_GET['term'])){
$return_arr = array();
$conn = new mysqli(DB_SERVER,DB_USER,DB_PASSWORD,DB_NAME);
$stmt = $conn->stmt_init();
$term = '%'.$_GET['term'].'%';
$stmt = $conn->prepare("SELECT name from items WHERE name like ?");
$stmt->bind_param("s", $term);
$stmt->execute();
$stmt->bind_result($models);
while($row = $models){
$return_arr[] = $row['name'];
}
echo json_encode($return_arr);
}
?>
而且有些教程使用fetch_array()並沒有在我的工作腳本爲什麼?它只適用於常規循環,例如while循環來存儲數據庫中的數組,然後使用foreach來回顯每一行。我正在使用$mysqli->fetch_array()
。 哪部分是錯的?