传递给查询的变量的问题

时间:2009-07-16 15:57:32

标签: php mysql

function add_new($father = 0 , $chName, $desc , $icon )  // add new category
{

$position  = $this->get_position($father);
$sql = "INSERT into ".$this->table_name."(position,c_name,c_desc,c_icon,c_group)
        VALUES('','".$chName."','".$desc."','".$icon."','".$this->Group."')";

mysql_query($sql) or die(trigger_error("<br><storng><u>MySQL Error:</u></strong><br>".mysql_error()."<br><br><storng><u>Query Used:</u></strong><br>".$sql."<br><br><storng><u>Info:</u></strong><br>",E_USER_ERROR));

$sql = "UPDATE ".$this->table_name."
        SET position = '$father'
        WHERE id = '".mysql_insert_id()."'";

mysql_query($sql) or die(trigger_error("<br><storng><u>MySQL Error:</u></strong><br>".mysql_error()."<br><br><storng><u>Query Used:</u></strong><br>".$sql."<br><br><storng><u>Info:</u></strong><br>",E_USER_ERROR));

}

现在我的问题是为什么UPDATE Query虽然有效但不采用父变量。我不确定它是否适用。

2 个答案:

答案 0 :(得分:3)

您没有使用$position变量 - 我不明白为什么您要进行两次查询:

function add_new($father, $chName, $desc, $icon)  // add new category
{
    $position  = $this->get_position($father);
    $sql = "INSERT into ".$this->table_name."(position,c_name,c_desc,c_icon,c_group)
        VALUES('" . $position . "','".$chName."','".$desc."','".$icon."','".$this->Group."')";

    mysql_query($sql) or die('snip');
}

另外,默认参数仅在参数列表的末尾有意义。

答案 1 :(得分:1)

我认为具有默认值的变量将放在参数列表的末尾。

function add_new($var1, $var2, $father = 0) { /*...*/ }
  

“请注意,使用默认参数时,任何默认值都应位于任何非默认参数的右侧;否则,事情将无法按预期工作。”

     

http://us.php.net/manual/en/functions.arguments.php