簡體   English   中英

這個 php 代碼在本地主機上工作,但不在服務器上?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM