यहाँ एक समाधान है, जो मेरे लिए काम करता है:
- निष्पादित करें
sqlsrv_configure("WarningsReturnAsErrors", 0);
त्रुटि प्रबंधन के लिए सेटिंग बदलने के लिए। WITH STATS = 1
BACKUP DATABASE
. से बयान।
मैं अपाचे 2.4, PHP 7.1.12 और SQL सर्वर के लिए Microsoft PHP ड्राइवर (php_sqlsrv_71_ts_x86.dll, संस्करण 4.3) का उपयोग करके एक परीक्षण मामले के साथ इस समस्या को पुन:उत्पन्न करने में सक्षम हूं। अंतर केवल इतना है कि उदाहरण SQLSRV ड्राइवर का उपयोग करता है (मैं अपने परीक्षण वातावरण में PDO_SQLSRV ड्राइवर का उपयोग नहीं कर सकता)।
पीएचपी
<?php
sqlsrv_configure("WarningsReturnAsErrors", 0);
// Connection
$serverName = "127.0.0.1\instance,1433";
$connectionInfo = array(
"UID"=>"user",
"PWD"=>"password",
"Database"=>"ProdDB"
);
$conn = sqlsrv_connect($serverName, $connectionInfo);
if ($conn === false) {
echo "Unable to connect.</br>";
die(var_export(sqlsrv_errors(), true));
}
// Backup database
$strSQL = file_get_contents("archdata.sql");
if (!empty($strSQL)) {
$query = sqlsrv_query($conn, $strSQL);
if ($query === false) {
die(var_export(sqlsrv_errors(), true));
} else {
sleep(5);
echo "Success";
}
}
?>
टी-एसक्यूएल (archdata.sql)
declare
@path varchar(100),
@fileDate varchar(20),
@fileName varchar(140)
SET @path = 'd:\Backup\'
SELECT @fileDate = CONVERT(VARCHAR(20), GETDATE(), 112)
SET @fileName = @path + 'ProdDB_' + @fileDate + '.BAK'
BACKUP DATABASE ProdDB TO [email protected]
'D:\Backup' फोल्डर को जरूरी अधिकार देना न भूलें।