[PHP-users 13736] 関数の戻り値の使い方

tamura php-users@php.gr.jp
Tue, 04 Mar 2003 17:02:28 +0900


田村です。まだ、つまづいております。今回もよろしくお願いいたします。
以下のような sqltemplate.inc ファイル
function updatesql($svname, $dbname, $tbname, $usname, $psname) {
  $cnt=0;
  $conn = mysql_connect($svname, $usname, $psname);
  $result=mysql_list_fields($dbname, $tbname, $conn);
  while ($cnt<mysql_num_fields($result)){
    $fdname[$cnt]=mysql_fieldname($result, $cnt);
    $cnt++;
  } 
  $sql="UPDATE ".$tbname." SET ".$fdname[1]."='$".$fdname[1]."'";
  for ($i=2; $i<=$cnt-1; $i++) {
    $sql.=", ".$fdname[$i]."='$".$fdname[$i]."'";
  }
  $sql.=" WHERE ".$fdname[0]."=$".$fdname[0];  //$fdname[0]は、int型
  $result = mysql_query($sql);
  return $result;
}
を、別ファイルに作成する。

それを下記のように、呼んだのですが
include ("./sqltemplate.inc");
$conn = mysql_connect($svname, $usname, $psname);
mysql_select_db($dbname);
$sql=updatesql($svname, $dbname, $tbname, $usname, $psname); 
//(ここで、確認する)
$result = mysql_query($sql);

//(ここで、確認する)で行ったことは、echo $sql; です。結果は、
(例えば、以下のように)
UPDATE m_category SET category_code='$category_code', category_name='$category_name',
category_explain='$category_explain' WHERE category_id=$category_id
と、表示され、$sqlは、作成されているようです。しかし、
$result = mysql_query($sql);
が、有効になりません。

 どうかご教示ください。