什么时候完成PHP-MySQL变量赋值?

时间:2010-02-18 03:31:08

标签: php mysql checkbox insert

[状态:学习者] 使用复选框,用户从显示的HTML表中选择行。然后,我想将所选(“勾选”)行的日期和唯一行id(“select_id”)插入到不同的表中。也许我是偏离基础的,但在我看来,第一段代码不起作用。第二段代码可以正常工作。如果我是正确的,那么看起来在哪里制作$ SQL语句很重要。为什么?我的意思是,在mysql_query()函数调用$ sql之前,不会进行任何变量赋值,对吗?

(......如果我错了,没关系,这只是在家里的一个正常的夜晚。)

$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 () ) ;
          }
    }

1 个答案:

答案 0 :(得分:0)

在示例一中,查询假设存在变量,而不存在变量。如果需要,您可以parameterize the query,并在foreach中添加值,但在示例1中尝试时无法执行此操作。

示例:

$sql = "INSERT INTO sap_id_select(select_id) VALUES('%s')";

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