【发布时间】:2020-07-02 21:35:01
【问题描述】:
我们正在制作一个即将存储网站名称、类别和详细信息的拼贴项目,因此我们完成了网站,现在我们想要制作将通过 API 与服务器通信的应用程序。当数据被添加到数据库 echo json_encode(true) 时,我们在 php 脚本中有这样的简单代码。正如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);
}
这在 localhost 中的缩进效果很好,但它在我们的免费服务器中不起作用,它显示 alert('unfortunatley data could not added succesfully');i 不知道为什么会发生这种情况。我们有来自 awardspace.com 的免费服务器和域
更新
这是我从server SQLSTATE[HY000] [2002] No such file or directory 收到的错误消息
谢谢。
【问题讨论】:
-
确保路径 '../php/addNewWebsite.php' 正确,并检查服务器的 .htaccess 文件中的默认目录是否正确设置。
-
您是否添加了正确的连接服务器凭据。在这一行 new PDO('mysql:host=localhost;dbname=website' , 'root' , '');
-
@Gaurav 是的,我已经添加了正确的凭据,否则它将无法在 localhost (xampp) 中工作
-
@Shaam 由于免费服务器,我无法访问 .htaccess 文件,但在更新代码之前它运行良好,我正在考虑用旧文件替换这些文件。
-
服务器和本地主机是否具有相同的数据库凭据??