[英]this php code works in localhost but not on server?
我們正在制作一個拼貼項目,該項目將存儲網站名稱、類別和詳細信息,因此我們完成了網站,現在我們想要制作將通過API
與服務器通信的應用程序。 當數據添加到數據庫時,我們在 php 腳本中有這樣的簡單代碼echo json_encode(true)
。 正如android程序員所知,改造庫使用鍵值對類型機制,所以我們更新了以下代碼。
<?php
$websiteName = $_POST['website_name'];
$websiteCategory = $_POST['website_cat'];
$websiteDetails = $_POST['website_details'];
try {
$pdo = new PDO('mysql:host=localhost;dbname=website' , 'root' , '');
$sql = 'INSERT INTO website_data SET website_name = :website_name , website_cat = :website_cat , website_details = :web_del';
$stmt = $pdo->prepare($sql);
$stmt->bindValue(':website_name' ,$websiteName);
$stmt->bindValue(':website_cat' ,$websiteCategory);
$stmt->bindValue(':web_del' ,$websiteDetails);
$stmt->execute();
echo json_encode(['response' => 'true']);
} catch (PDOException $e) {
$msg = $e->getMessage();
echo json_encode(['response' => $msg]);
}
?>
這是使用ajax執行操作的javascript代碼
function sendData(websiteName , categoryName , websiteDetails){
var params = 'website_name='+websiteName+'&website_cat='+categoryName+'&website_details='+websiteDetails;
var xml = new XMLHttpRequest();
xml.onreadystatechange = function(){
if(this.status == 200 && this.readyState == 4){
var response = this.responseText;
var responseJson = JSON.parse(response);
console.log('resonse from server' , responseJson['response']);
if(responseJson['response'] == 'true'){
addToCurrent(websiteName , categoryName , websiteDetails);
}else{
alert('unfortunatley data could not added succesfully');
}
} else{
console.log('there is some problem with sever');
}
}
xml.open('POST' , '../php/addNewWebsite.php' , true);
xml.setRequestHeader('Content-type' , 'application/x-www-form-urlencoded');
xml.send(params);
}
這在本地主機中的縮進工作良好,但它在我們的免費服務器中不起作用它顯示alert('unfortunatley data could not added succesfully');
我不知道為什么會這樣。 我們有來自 Awardspace.com 的免費服務器和域名
更新
這是我從server SQLSTATE[HY000] [2002] No such file or directory
收到的錯誤消息server SQLSTATE[HY000] [2002] No such file or directory
謝謝。
我過去遇到過類似的問題。 您應該嘗試將localhost
更改為127.0.0.1
,假設您的 MySQL 服務器在同一台機器上運行。
我認為您遇到的問題是“localhost”使用 UNIX 套接字並且在標准目錄中找不到數據庫。 然而,“127.0.0.1”使用 TCP ,這實質上意味着它通過機器上的“本地互聯網”運行,比 UNIX 套接字更可靠。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.