Php Exec命令在sql server中不起作用
我正在进行数据库迁移。我已经编写了一个代码,用于执行从数据库检索数据并将其推入csv文件的命令。这在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
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上重新创建失败。编辑问题。请向我们显示您已尝试的代码。我已添加代码。谢谢你。