Вопрос по переменной, переданной в запрос - PullRequest
0 голосов
/ 16 июля 2009
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, хотя и работает, не принимает переменную отца. Я не уверен, применимо ли это.

Ответы [ 2 ]

3 голосов
/ 16 июля 2009

Вы не используете переменную $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 голос
/ 16 июля 2009

Я считаю, что переменные, имеющие значения по умолчанию, должны быть помещены в конец списка аргументов.

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

"Обратите внимание, что при использовании аргументов по умолчанию любые значения по умолчанию должны быть справа от любых аргументов, отличных от заданных по умолчанию; в противном случае все будет работать не так, как ожидалось."

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...