MySQL INSERT正如文档所述正常工作

时间:2013-06-19 00:53:30

标签: php mysql

我想要做的是我有一个名为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']");

4 个答案:

答案 0 :(得分:1)

你的陈述有几个问题。一个是方括号。更重要的是,您指定了两列具有值但在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')

答案 1 :(得分: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)上的双美元符号是否有意,但我认为我至少会让你意识到这一点。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

首先使用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();
            }

}