Php Exec命令在sql server中不起作用

Php Exec命令在sql server中不起作用,php,sql-server,drupal-7,Php,Sql Server,Drupal 7,我正在进行数据库迁移。我已经编写了一个代码,用于执行从数据库检索数据并将其推入csv文件的命令。这在MySQL中运行良好,但当我尝试在sqlserver中执行相同操作时,它不起作用。事实上,当我将相同的命令复制粘贴到命令提示符中时,它可以正常工作。我仔细检查了一切。我不明白为什么它不起作用。它返回空白输出。我已经尝试过许多以前提供的解决方案。都不管用。非常感谢在这方面的任何帮助 以下是我正在使用的代码: //$sqlsrv is used to determine the database se

我正在进行数据库迁移。我已经编写了一个代码,用于执行从数据库检索数据并将其推入csv文件的命令。这在
MySQL
中运行良好,但当我尝试在
sqlserver
中执行相同操作时,它不起作用。事实上,当我将相同的命令复制粘贴到命令提示符中时,它可以正常工作。我仔细检查了一切。我不明白为什么它不起作用。它返回空白输出。我已经尝试过许多以前提供的解决方案。都不管用。非常感谢在这方面的任何帮助

以下是我正在使用的代码:

//$sqlsrv is used to determine the database server type
  $str_query = voc_get_query_string($query);
  $output_uri = 'temporary://' . user_password();
  $file_path = drupal_realpath($output_uri . '.csv');
  if($sqlsrv){
    $exec_path = drupal_realpath('private://Binn\sqlcmd');
  }else{
    $exec_path = drupal_realpath('private://mysql');
  }
  $sql_uri = 'temporary://' . user_password();
  $sql_path = drupal_realpath($sql_uri);  
  $fp = fopen($sql_path, 'w');
  fputs($fp, $str_query);
  fclose($fp);
  global $databases;
  if ($sqlsrv) {
    $cmd = ($exec_path .
        ' -S ' . $databases['default']['default']['host'] .
        ' -d ' . $databases['default']['default']['database'] .
        ' -U ' . $databases['default']['default']['username'] .
        ' -P ' . $databases['default']['default']['password'] .
        ' -i ' . $sql_path . '>>'. $file_path .
        ' -s '. '"," -W -m10 -r1');
  }
  else {
    $cmd = ($exec_path . ' ' . $databases['default']['default'] 
        ['database'] .
        ' -h ' . $databases['default']['default']['host'] .
        ' -u ' . $databases['default']['default']['username'] .
        ' -p ' . $databases['default']['default']['password'] . ' < ' 
        . $sql_path .
        ' > ' . $file_path);
  }

  exec($cmd);
  watchdog('cmd', var_export($cmd, TRUE));
/$sqlsrv用于确定数据库服务器类型
$str\u query=voc\u get\u query\u string($query);
$output_uri='temporary://'。用户_密码();
$file_path=drupal_realpath($output_uri.'.csv');
如果($sqlsrv){
$exec\u path=drupal\u realpath('private://Binn\sqlcmd');
}否则{
$exec\u path=drupal\u realpath('private://mysql');
}
$sql_uri='temporary://'。用户_密码();
$sql\u path=drupal\u realpath($sql\u uri);
$fp=fopen($sql_路径,'w');
fputs($fp,$str_查询);
fclose($fp);
全球$数据库;
如果($sqlsrv){
$cmd=($exec_路径)。
'-S'.$databases['default']['default']['host']。
'-d'.$databases['default']['default']['database']。
'-U'.$databases['default']['default']['username']。
'-P'.$databases['default']['default']['password']。
“-i”。$sql\u路径。“>>。$file\u路径。
“-s”“,”-W-m10-r1');
}
否则{
$cmd=($exec_path.'.$databases['default']['default']
['database']。
“-h”。$databases['default']['default']['host']。
'-u'.$databases['default']['default']['username']。
“-p”。$databases['default']['default']['password'].<'
.$sql\u路径。
“>”.$file_路径);
}
行政人员($cmd);
看门狗('cmd',变量输出($cmd,TRUE));

我们需要查看不起作用的代码、不起作用的方式(错误、意外结果等),以及足够的示例数据,以便在MySQL上重新创建成功,在SQL Server上重新创建失败。编辑问题。请向我们显示您已尝试的代码。我已添加代码。谢谢你。