我正在使用PHP苗条框架2.6.3版连接到MsSql服务器版本16,并且我有一个计划表,其中包含以下详细信息。
CREATE TABLE Plans (
Id INT IDENTITY(1,1),
PlanName VARCHAR(100)
)
INSERT INTO Plans (PlanName) VALUES ('Plan 1');
INSERT INTO Plans (PlanName) VALUES ('Plan – 2');
下面是我用来连接到SQL Server的代码。
function connect()
{
//Including the constants.php file to get the database constants
include_once dirname(__FILE__) . '/Constants.php';
try {
//DB type is 'sqlsrv'
$this->dsn = DB_TYPE.':Server='.DB_HOST.';Database='.DB_NAME;
$this->con = new PDO($this->dsn, DB_USERNAME, DB_PASSWORD);
//finally returning the connection link
return $this->con;
} catch (PDOException $e) {
// Close the database handler and trigger an error
self::Close();
$response["error"] = true;
$response["message"] = "Exception: ".$e;
//echo json_encode($response);//die;
}
}
当我尝试获取所有计划时,我没有任何数据,但是当我尝试获取第一个计划时,我没有出现任何错误。
同样,当我用空白值替换en dash
时,我也获得了所有计划数据。有没有一种方法可以获取所有计划,而无需更新计划名称,也不需要更新苗条的框架版本?
注意:-我也无法更新计划名称,因为它们也被其他其他api(节点,.net)占用。另外,我无法更改苗条框架的版本,因为其他团队的网站托管在同一服务器上,用于同一版本的PHP。
获取所有计划的代码。
public function getAllPlans() {
$this->arrReturn['error'] = false;
$query = "exec [master].[GetAllPlans]";
$stmt = $this->con->prepare($query);
$stmt->execute();
$this->result = $stmt->fetchAll(PDO::FETCH_ASSOC);
if (empty($this->result)) {
$this->arrReturn['message'] = 'No data found!';
$this->arrReturn['data'] = [];
} else {
$this->arrReturn['message'] = 'Found!';
$this->arrReturn['data'] = $this->result;
}
return $this->arrReturn;
}
我没有得到任何结果,也没有任何错误。