【问题标题】:How to create table after create database using shell_script in PHP?如何在 PHP 中使用 shell_script 创建数据库后创建表?
【发布时间】:2015-09-15 05:19:39
【问题描述】:

在解决了在 php 中使用 shell_script 创建数据库的问题后,请参阅这篇文章 link,我试图在同一个 shell_exec 命令中创建表。

我有以下几行:

$sql="CREATE DATABASE IF NOT EXISTS dbtest; use dbtest; CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
) ";

shell_exec("mysql -uroot -pmypasswrd  -e  \"$sql\" ");

这段代码只创建数据库,不创建表。我的问题是如何使用 shell_exec() 完成这项任务?是否可以使用 shell_exec() 运行来自 mysqldump 的 sql satatment?

【问题讨论】:

  • 我在这方面真的找不到任何东西,但看看这是否有帮助 gotoanswer.com/…
  • 我虽然在某处看到 -e 之后我们可以使用 ; 分隔的 sql 语句
  • 我以前从未使用过这种方法,所以我想我会在谷歌上搜索一下,看看能不能找到任何相关的东西。该页面上的信息对您有帮助吗?
  • 您好 Fred,您的链接提供了新信息,但没有解决问题。谢谢

标签: php mysql sql shell-exec create-table


【解决方案1】:

这段代码只创建数据库,不创建表。我的问题是如何使用 shell_exec() 完成这项任务?

我能为您的问题找到的唯一一种解决方案是将整个 SQL 查询写在一行中(而不是将其分成几行)。它会影响你代码的可读性,但是你的表会被创建。

【讨论】:

  • 是的,你很聪明。我只是运行一个脚本将“\n”删除到行尾(这是不可见的)并且它起作用了。我仍然有一些问题,因为我的 sql 脚本是 10k 行。但主要问题是“\n”不是 sql 命令并停止了 shell_exec -e。
猜你喜欢
  • 2019-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-16
  • 1970-01-01
  • 2015-09-01
相关资源
最近更新 更多