我正在尝试使用按钮单击将所需数据从一个数据库传输到另一个数据库。我正在使用的查询在localhost中工作正常,没有任何问题,但在cpanel(在线linux主机)中托管..数据没有转移到另一个数据库。
我已经重新检查过每个角落的数据库名称密码,用户等但无法解决问题。
Html: -
//单击按钮时会打开模态(data-target =#approveMemberModal)
<a type="button" class="btn btn-success" data-toggle="modal" data-target="#approveMemberModal" onclick="approveMember('.$row['id'].')"> <span class="glyphicon glyphicon-edit"></span> Approve</a></li>
//批准模态
<div class="modal fade" tabindex="-1" role="dialog" id="approveMemberModal">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title"><span class="glyphicon glyphicon-trash"></span> Approve Member</h4>
</div>
<div class="modal-body">
<p>Do you really want to Approve ?</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-danger" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary" id="approveBtn">Yes</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
//一旦ApproveMemberModal打开..将有两个选项&#34;关闭&#34;和&#34;是&#34; ..&#34;是&#34;选项有id =&#34; approveBtn&#34;这是在单击按钮时调用ajax的引用。
// Ajax
function approveMember(id = null) {
if(id) {
// click on remove button
$("#approveBtn").unbind('click').bind('click', function() {
$.ajax({
url: 'php_action/approve.php',
type: 'post',
data: {member_id : id},
dataType: 'json',
success:function(response) {
if(response.success == true) {
$(".approveMessages").html('<div class="alert alert-success alert-dismissible" role="alert">'+
'<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>'+
'<strong> <span class="glyphicon glyphicon-ok-sign"></span> </strong>'+response.messages+
'</div>');
// refresh the table
manageMemberTable.ajax.reload(null, false);
// close the modal
$("#approveMemberModal").modal('hide');
} else {
$(".approveMessages").html('<div class="alert alert-warning alert-dismissible" role="alert">'+
'<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>'+
'<strong> <span class="glyphicon glyphicon-exclamation-sign"></span> </strong>'+response.messages+
'</div>');
}
}
});
}); // click remove btn
} else {
alert('Error: Refresh the page again');
}
}
//从Ajax开始,它将调用php文件,即approve.php
PHP
<?php
require_once 'db_connectone.php';
require_once 'db_connecttwo.php';
$output = array('success' => false, 'messages' => array());
$memberId = $_POST['member_id'];
$sql = "INSERT INTO appsrx1a_one.candidate_tabletest (candid,mobile , secmobile) SELECT candid,mobile , secmobile FROM appsrx1a_one.candidate_tabletest WHERE id = {$memberId}";
$sqll="DELETE FROM appsrx1a_one.candidate_tabletest WHERE id = {$memberId}";
$query = $connect->query($sql);
$query = $connect->query($sqll);
if($query === TRUE) {
$output['success'] = true;
$output['messages'] = 'Successfully Approved';
} else {
$output['success'] = false;
$output['messages'] = 'Error while approving the member information';
}
// close database connection
$connect->close();
echo json_encode($output);
从上面的php文件中db_connectone.php有第一个数据库的数据库连接,db_connecttwo.php有第二个数据库的数据库连接
下面的查询将从数据库一中选择数据,即(appsrx1a_one)并插入数据库二,即(appsrx1a_two.candidate_tabletest)
$sql = "INSERT INTO appsrx1a_two.candidate_tabletest (candid,mobile , secmobile) SELECT candid,mobile , secmobile FROM appsrx1a_one.candidate_tabletest WHERE id = {$memberId}";
一旦转移,下面的查询将删除数据库中的数据,即(appsrx1a_one)
$sqll="DELETE FROM appsrx1a_one.candidate_tabletest WHERE id = {$memberId}";
所有上述功能在localhost中运行正常,没有任何问题..我只在cpanel中遇到此问题...在error_log中没有收到任何错误。
此代码中可能存在的问题。如果上述方法错误,请提供正确的方法。 谢谢
答案 0 :(得分:0)
检查数据库名称。 cPanel使用cpaneluser_dbname创建不同的数据库。检查数据库凭据,如mysql用户,密码,以确保configure mysql用户可以访问已配置的mysql数据库(您可以使用cPanel Web界面允许数据库对特定mysql用户的权限)。如果您具有shell访问权限,则可以尝试从ssh控制台手动运行脚本。您可以修改脚本并添加调试,例如在脚本的不同阶段打印状态以检查脚本的确切位置,上次执行的命令的最后输出是什么