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虽然有效但不采用父变量。我不确定它是否适用。
答案 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) { /*...*/ }
“请注意,使用默认参数时,任何默认值都应位于任何非默认参数的右侧;否则,事情将无法按预期工作。”