背景:我試圖在搜索框中運行一些AJAX,在搜索框中去查找數據庫,然後返回結果而不刷新頁。使用PHP無法連接到我的MySQL數據庫mysqli_connect()
問題:我不確定它是否真的連接到我的數據庫。我已經使用THIS METHOD測試了連接,並且說它對於我正在使用的憑據是成功的。不過,我可以從的locahost到www.MYDOMAINNAME.com或服務器名稱從我的cPanel改變主機,它仍然說,這是一個成功的連接。如果成功,那爲什麼不運行我的SQL?
問題:我的代碼下面有什麼問題嗎?如果沒有,有沒有更好的方法來測試發生了什麼?
說明:我的控制檯中的輸出是「Error [object Object]」。它成功地擊中了search.php,所以我不認爲這是一個文件路徑問題。我也在頁面加載時運行PHP,而不是通過AJAX來完成,而且一切似乎都很順利。我能得到一些結果回來時,我硬編碼值$查詢。
文件結構:
(ROOT FOLDER)
index.php (where the form is)
(PHP FOLDER)
search.php
(JS FOLDER)
search.js
HTML:
<form action="php/search.php" method="post">
<input type="search" class="main-search" name="query" />
<div class="btn btn-lg btn-primary">Search</div></form>
</form>
的jQuery:
$(function() {
$(".main-search").keyup(function() {
search($(this).val());
});
});
function search(query) {
$.ajax({
url:"./php/search.php",
type:"POST",
dataType:"json",
data: { query:query },
success: function(data) {
$(".result").html(data);
},
error: function(data) {
$(".result").html(data);
}
});
}
PHP:
<?php
$query = $_POST["query"];
$link = mysqli_connect('localhost', 'USER', 'PASS') or die ('Error connecting to mysql: ' . mysqli_error($link));
mysqli_select_db($link, 'DB_NAME');
/* check connection */
if (mysqli_connect_errno()) {
echo mysqli_connect_error();
exit();
}
/* Select queries return a resultset */
if ($result = mysqli_query($link, "SELECT actual FROM icons WHERE synonym = '$query'")) {
$row = mysqli_fetch_array($result);
echo $row["actual"];
mysqli_free_result($result);
}
else {
echo "No results found.";
}
mysqli_close($con);
?>
按F12在Chrome中,並確保Ajax調用corectly或不發。檢查它是否返回一些內容。 – Tejas
在Developer Tools的網絡選項卡中,它返回Error:[object Object]。在我提出這個錯誤走開通過添加isset()函數: – Jon
能否請您發佈完整的錯誤部分 – Tejas