何时完成PHP-MySQL变量赋值?

问题描述:

[状态:学习者] 使用复选框,用户从显示的HTML表中选择行。然后,我想将所选('勾号')行的日期和唯一行ID(“select_id”)插入到不同的表中。也许我是非基地,但在我看来,第一块代码不起作用。代码的第二块确实工作。如果我是正确的,它看起来很重要$ SQL语句的作用。为什么?我的意思是,在mysql_query()函数调用$ sql之前,没有进行变量赋值,对吧?何时完成PHP-MySQL变量赋值?

(...如果我错了,请不要介意,那只是在家里正常的夜晚。)

$sql = "INSERT INTO sap_id_select ( select_date 
            , select_id) 
     VALUES ( CURRENT_DATE() 
       , '{$cSelected_id}') 
     " ; 

if (isset ($_POST [ checkbox])) 
    { 
     foreach ($_POST [ checkbox ] as $cSelected_id) 
     { 
      mysql_query ($sql) or ("Error: " . mysql_error()) ; 
     } 
    } 

================= ===============

if (isset ($_POST [ checkbox])) 
    { 
     foreach ($_POST [ checkbox ] as $cSelected_id) 
      { 
      $sql = "INSERT INTO sap_id_select ( select_date 
               , select_id) 
        VALUES ( CURRENT_DATE() 
          , '{$cSelected_id}') 
        " ; 

      mysql_query ($sql) or ("Error: " . mysql_error()) ; 
      } 
    } 

在示例一中,查询假设存在一个变量,该变量不在那里。如果你愿意,你可以parameterize the queryforeach中添加值,但你例子试图1.

比如你可以这样做:

+0

谢谢你,Johathan。如果你会放纵我,为什么在mysql_query()函数使用之前,$ sql语句不是一堆“文本”? [IOW,如果我正确理解你的意思,{$ cSelected_id}赋值是在解析$ sql语句后立即进行的,并且不会等到它通过mysql_query()进行操作。] – dave 2010-02-18 04:20:04

+0

我相信是这样,戴夫。 – Sampson 2010-02-18 04:21:16

+0

呃,当!就在我以为我学到了东西的时候。 – dave 2010-02-18 05:15:27