Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP数据库事务在服务器上失败_Php_Mysql_Mariadb_Cpanel_Phalcon - Fatal编程技术网

PHP数据库事务在服务器上失败

PHP数据库事务在服务器上失败,php,mysql,mariadb,cpanel,phalcon,Php,Mysql,Mariadb,Cpanel,Phalcon,我已经开发了一个网站使用PhalconPHP。该网站在我的本地计算机上运行良好,规格如下: PHP Version 7.0.22 Apache/2.4.18 PhalconPHP 3.3.1 在我以前的服务器上(使用DirectAdmin): 但最近我迁移到了一个新的VPS。使用cPanel: CENTOS 7.4 vmware [server] cPanel v68.0.30 PHP Version 5.6.34 (multiple versions available, this one

我已经开发了一个网站使用PhalconPHP。该网站在我的本地计算机上运行良好,规格如下:

PHP Version 7.0.22
Apache/2.4.18
PhalconPHP 3.3.1
在我以前的服务器上(使用DirectAdmin):

但最近我迁移到了一个新的VPS。使用cPanel:

CENTOS 7.4 vmware [server]
cPanel v68.0.30
PHP Version 5.6.34 (multiple versions available, this one selected by myself)
PhalconPHP 3.2.2
在新的VPS上,我的网站总是给我
错误500

在我的Apache错误日志文件中:
[cgi:Error]头前面的脚本输出结束:ea-php70,referer:http://mywebsitedomain.net

我怀疑的是新的数据库系统。新的不是mySql。它是
10.1
。我试图降级到MySQL 5.6,但WHM说我无法降级到更低的版本

这是我的配置文件:

[database]
adapter  = Mysql
host     = localhost
username = root
password = XXXXXXXXXXXX
dbname   = XXXXXXXXXXXX
charset  = utf8
还有我的
Services.php

protected function initDb()
{
    $config = $this->get('config')->get('database')->toArray();

    $dbClass = 'Phalcon\Db\Adapter\Pdo\\' . $config['adapter'];
    unset($config['adapter']);

    return new $dbClass($config);
}
在我的控制器里。。。 例如,此代码抛出
错误500

$this->view->files = Patients::query()->orderBy("id ASC")->execute();
$user = Users::findFirst(array(
                         "conditions" => "id = :id:",
                         "bind" => array("id" => $this->session->get("userID"))
                        ));
但是将
id
更改为
fname
可以解决问题:

$this->view->files = Patients::query()->orderBy("fname ASC")->execute();
甚至以下代码也会抛出错误500:

$this->view->files = Patients::query()->orderBy("id ASC")->execute();
$user = Users::findFirst(array(
                         "conditions" => "id = :id:",
                         "bind" => array("id" => $this->session->get("userID"))
                        ));
PhalconPHP和MariaDB的兼容性有问题吗?

MariaDB的构建主要是为了与MySQL客户端兼容,这不太可能是您出现问题的原因。如果您仍然担心,您可以通过转储(导出)表、切换并再次导入表,从MariaDB切换到MySQL(反之亦然)

更可能的是,您显示的错误行表明您的新服务器实际运行的是PHP7(
ea-php70
),而不是您认为选择的PHP5.6

头之前的脚本输出结束错误
意味着CGI脚本(在本例中为PHP7本身)在终止之前没有生成任何HTTP头。我怀疑您的PhalconPHP版本与PHP7不兼容,因此会立即崩溃


如果cPanel不允许您正确配置您的基础设施,您可能没有其他选择,只能放弃它并手动设置堆栈。但是,由于您可能为cPanel付费,您可以尝试先向他们开一张支持票:

最有可能是旧的phalconPHP版本,我想它不支持最新的PHP7.x版本。我记得我在另一个博客问题中读到过类似的问题。

@DevMoutarde是的,但服务器上有一个较旧的PhalconPHP版本。@Cobra_Fast谢谢你的回答。奇怪的是,如果我删除所有与数据库相关的代码,phalcon似乎可以工作。
invo
示例应用程序工作正常,显示扩展已加载并正常工作。但当我在数据库上执行一些查询时,这个问题就会发生,而且只有当我按整数字段进行查询时才会发生。@Agha那么,请尝试切换到MySQL,看看这是否解决了您的问题。您不记录错误消息吗?“错误500”没有帮助。“从可信和/或官方来源寻找答案。”对外部资源的请求不是被明确地认为是离题的吗?缺少一个被认为是离题的话题不是吗?无论如何,在你的机器上切换数据库以验证这是否是你的代码不能工作的原因。你检查过你的.htaccess文件吗?