0

OK 简介:我在名为“Remote”(Windows 2000 Pro)的机器上使用 php 和 mysql 运行 Apache

阿帕奇 2.0.64 - php 5.2.4 - mysql 4.0.21

我想执行这个命令:

mysql --host=localhost --user=??? --密码=???< C:\localhost\www_install.sql

文件_install.sql很简单:

USE my_database;
DROP TABLE my_table;
CREATE TABLE my_table (id INT UNSIGNED NOT NULL AUTO_INCREMENT, PRIMARY KEY(id) );
ALTER TABLE my_table ADD COLUMN datetime DATETIME;

...并以这种方式添加了更多列。

因此,当我使用 VNC 连接到“远程”时,打开命令提示符 (cmd),重新键入我的命令(之前键入的)一切都正确执行,表(my_table 和内容)消失了,并且使用重建的新列重新创建了表.

但是我不想弄乱VNC,因为自动化并不容易,我想使用php(通过网页)执行这个命令。第一个想法是:

使用system( )命令,但将我的命令粘贴到system( )函数不起作用:(

有谁知道为什么?

我也尝试过exec( )并且shell_exec( )没有积极的结果。

附加信息:

  • 我希望它使用 php 完成,bcs 客户端(用户)我将 php 与 mysql 连接具有权限并且应该能够添加/删除表
  • 我发现能够快速将表重置为默认值很有用
  • 我不想使用 VNC,bcs 我必须在我连接到“远程”的每台机器上安装(网络浏览器已经足够好了)
  • 我真的不想重新安装或将应用程序升级到较新的版本
4

1 回答 1

0

为什么在使用 PHP 进行 mysql 调用时尝试使用 exec() 或 system()?PHP 有处理这个问题的函数:

$mysqli = new mysqli("localhost", "user", "password", "my_database");
$mysqli->query("DROP TABLE my_table");
$mysqli->query("CREATE TABLE my_table (id INT UNSIGNED NOT NULL AUTO_INCREMENT, PRIMARY KEY(id) )");
于 2013-11-12T14:11:14.213 回答