【问题标题】:MySQL INSERT working properly as documented [closed]MySQL INSERT 按照记录正常工作[关闭]
【发布时间】:2013-06-19 00:53:29
【问题描述】:

我想要做的是我有一个名为 m_select 的表,它有四个字段 --> id、id_m、hello、bye .. 我想从脚本中的变量中获取两个字段,它们是 id 和 id_m 和其中两个来自另一个名为 test1 的表,使用 SELECT ... 是可能的。

mysql_query("INSERT INTO m_select [(id, id_m, hello, bye)] VALUES [('$U','$$t_id')] SELECT hello,bye FROM test1 [WHERE id='$test_id']");

【问题讨论】:

  • 您尝试插入一行,然后在一次操作中检索新插入的行?你不能通过mysql_query()。或者您是否正在尝试执行INSERT INTO...SELECT FROM... 声明?无论哪种方式,SQL 中绝对没有方括号[]...
  • 您正在插入 m_select 表并从 test1 中选择。查询之间没有关系,为什么要在单个语句中使用它?
  • 请更正问题以及您不想在问题中清楚描述的内容

标签: php mysql


【解决方案1】:

试试这个:

mysql_query("
  INSERT INTO
    m_select
    (id, id_m, hello, bye)
   SELECT
     '$U' AS id,
     '$$t_id' AS id_m,
     hello,
     bye
   FROM test1 WHERE id='$test_id'
");

我不确定$$t_id(而不是$t_id)上的双美元符号是否是故意的,但我想我至少会让你意识到这一点。

【讨论】:

  • 谢谢我的朋友。我想做的是我有一个名为 m_select 的表,它有四个字段——> id、id_m、hello、bye .. 我想从脚本中的变量中获取其中两个字段,它们是 id 和 id_m 以及其中两个从另一个名为 test1 的表中使用 SELECT ... 是可能的。这个解决方案现在有效
  • 我现在正在整理一个示例。一会儿……
  • 嗯,那个查询应该可以工作..你得到什么错误?
  • 它的工作兄弟......谢谢......拼错了一些东西
【解决方案2】:

你的陈述有几个问题。一种是方括号。更重要的是,您指定了两列具有值,但在 insert 语句中有四列。这似乎是你想要的:

INSERT INTO m_select (id, id_m, hello, bye)
   VALUES ('$U','$$t_id')

您可以添加其他值:

INSERT INTO m_select (id, id_m, hello, bye)
   VALUES ('$U','$$t_id', 'hello', 'bye')

或将它们从列列表中删除:

INSERT INTO m_select (id, id_m)
   VALUES ('$U','$$t_id')

【讨论】:

  • 但是我想打个招呼,再见了 test1 值
  • @lollol。 . .然后不要将它们包含在单引号中。
【解决方案3】:

我...删除方括号... 并将 SELECT 放在单独的查询中。

【讨论】:

  • mysql_query("INSERT INTO m_select (id, id_m, hello, bye) VALUES ('$U','$t_id') SELECT hello,bye FROM test1 WHERE id='$t_id'") ;
【解决方案4】:

首先使用PHP将数据插入到表中:

function insertFunction(){
    $query = "INSERT INTO test1(id, id_m, hello, bye) VALUES('$id','$id_m','$hallo','$bye')";
    try {
       $runQuery = mysql_query($query);
       if (!$runQuery) throw new Exception("mysql Error");
    } catch(Exception $e) {
       echo $e->getMessage();
    }
}

然后获取结果:

function selectFunction(){

        $resultantQuery = "SELECT id,id_m,hello,bye FROM test1";
        try {
               $runQuery = mysql_query($resultantQuery);
        $result = mysql_fetch_assoc($runQuery);
              echo "id:" .$result['id'];
              echo "id_m:" .$result['id_m'];
              echo "hello:" .$result['hello'];
              echo "bye:" .$result['bye'];

               if (!$runQuery) throw new Exception("mysql Error");
            } catch(Exception $e) {
               echo $e->getMessage();
            }

}

【讨论】:

  • 不是我要找的。 .我想做的是我有一个名为 m_select 的表,它有四个字段-> id、id_m、hello、bye .. 我想从脚本中的变量中获取其中两个字段,它们是 id 和 id_m 以及其中两个从另一个名为 test1 的表中使用 SELECT ... 这是可能的。
猜你喜欢
  • 2014-03-17
  • 2012-09-28
  • 1970-01-01
  • 1970-01-01
  • 2013-08-26
  • 1970-01-01
  • 1970-01-01
  • 2016-04-18
  • 2015-10-19
相关资源
最近更新 更多