【问题标题】:Connect database in PHP Constant expression contains invalid operationsPHP 常量表达式中的连接数据库包含无效操作
【发布时间】:2020-03-18 09:17:56
【问题描述】:

我只是在远程 SQL Server 中连接到我的数据库,但不幸的是我收到了这个错误。

常量表达式在 public $conn = 中包含无效操作 sqlsrv_connect($serverName, $connectionInfo);

这是我的代码:

<?php
    class Database{

        //specify database credentials
        private $serverName = "siber.com\\sqldeveloper, 1433"; //serverName\instanceName, portNumber (default is 1433)
        private $connectionInfo = array( "Database"=>"api_db", "UID"=>"SA", "PWD"=>"SiberCorshinee1123");
        public $conn = sqlsrv_connect( $serverName, $connectionInfo);

    public function getConnection(){

        $this->conn = null;
    }
?>

【问题讨论】:

  • 错误是什么?
  • "siber.com\\sqldeveloper" 似乎不是 SQL Server 实例的正确名称。
  • 常量表达式在 public $conn = sqlsrv_connect( $serverName, $connectionInfo); 中包含无效操作

标签: php sql-server database connection connect


【解决方案1】:

当你定义一个class member variable 时,重要的是要知道这个声明可能包含一个初始化,但是这个初始化必须是一个常量值——也就是说,它必须能够在编译时被评估并且必须不依赖运行时信息才能进行评估

像这样更改你的 PHP 脚本(可能你想使用类成员变量 $serverName$connectionInfo):

<?php
class Database {

    private $serverName = "sibernetik.com\\sqldeveloper, 1433";
    private $connectionInfo = array("Database"=>"api_db", "UID"=>"SA", "PWD"=>"SiberCorshine123");
    public $conn;

    public function getConnection(){
        $this->conn = sqlsrv_connect($this->serverName, $this->connectionInfo);

        // Additional code here, at least check the result from sqlsrv_connect().
    }
}
?>

【讨论】:

    猜你喜欢
    • 2018-12-02
    • 2017-06-18
    • 2017-05-16
    • 2017-04-11
    • 2017-03-03
    相关资源
    最近更新 更多