У меня есть этот код в MS SQL. Он работает нормально на MSSQL, но когда я пытаюсь поместить его в мой API на PHP, он возвращает ошибку PDOException. В чем может быть проблема и как я буду предполагать, чтобы это исправить? Пожалуйста, помогите мне.
SELECT
cast(user_id as varchar(255)) AS member_id,skincareproductbarcode.barcode, skincareproduct.SCP_id, skincabinet.beautybox_id,
skincabinet.skpid, skincareproduct.photos, skincabinet.create_date
, serial = STUFF((
SELECT ',' + mirrorprofile.serial_number
FROM skincabinet full join membermirrorprofile on
membermirrorprofile.member_id = skincabinet.user_id full join mirrorprofile on mirrorprofile.mirror_id = membermirrorprofile.mirror_id
where skincareproduct.scp_id = skincabinet.skpid FOR XML PATH(''), TYPE).value('.', 'VARCHAR(MAX)'), 1, 1, '')
from skincabinet join skincareproduct on skincareproduct.scp_id = skincabinet.skpid
full join skincareproductbarcode on skincabinet.skpid = skincareproductbarcode.scp_id
where skincareproduct.approval_flag = 'N' and skincareproduct.photos != ''
and substring(photos,52,3) = 'scp' order by skincareproduct.scp_id desc
Ошибка возвращается так
General error: 1934 General SQL Server error: Check messages from the SQL Server [1934] (severity 16) [(null)]
Мой php код такой
if($code == 'un'){
$listData = array();
$stmt = $dbRemote->prepare(
"SELECT
cast(user_id as varchar(255)) AS member_id,skincareproductbarcode.barcode, skincareproduct.SCP_id, skincabinet.beautybox_id,
skincabinet.skpid, skincareproduct.photos, skincabinet.create_date
, serial = STUFF((
SELECT ',' + mirrorprofile.serial_number
FROM skincabinet full join membermirrorprofile on
membermirrorprofile.member_id = skincabinet.user_id full join mirrorprofile on mirrorprofile.mirror_id = membermirrorprofile.mirror_id
where skincareproduct.scp_id = skincabinet.skpid FOR XML PATH(''), TYPE).value('.', 'VARCHAR(MAX)'), 1, 1, '')
from skincabinet join skincareproduct on skincareproduct.scp_id = skincabinet.skpid
full join skincareproductbarcode on skincabinet.skpid = skincareproductbarcode.scp_id
where skincareproduct.approval_flag = 'N' order by skincareproduct.scp_id desc
"
);
$stmt->execute();
$res = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($res as $row){
$listData[] = array(
"SCP_id" => $row['SCP_id'],
"barcode" => $row['barcode'],
"beautybox_id" => $row['beautybox_id'],
"skpid" => $row['skpid'],
"member_id" => $row['member_id'],
"photos" => $row['photos'],
"time" => $row['create_date'],
"SN" => $row['serial']
);
}
echo json_encode($listData);
}
Задача ещё не решена.
Других решений пока нет …