3

ユーザー ID からユーザーの名前を取得する関数を作成しました。異なるユーザー ID は while ループに含まれるため、関数は複数回使用されます。1 つのユーザー ID に対しては正常に機能しますが、複数ある場合はエラーが発生します。エラーは「警告: mysql_select_db(): 指定された引数は有効な MySQL-Link リソースではありません」です。

コードは

<?php 

function user_details($user_id) {

require_once('../Connections/runner.php'); 

if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string   ($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}

$colname_users = $user_id;
$first_name = "";
$last_name = "";
mysql_select_db($database_runner, $runner);
$query_users = sprintf("SELECT first_name, last_name, profile_img_small FROM sign_up WHERE   user_id = %s", GetSQLValueString($colname_users, "int"));
$users = mysql_query($query_users, $runner) or die(mysql_error());
$row_users = mysql_fetch_assoc($users);
$totalRows_users = mysql_num_rows($users);
$first_name = $row_users['first_name'];
$last_name = $row_users['last_name'];
$profile_sml = $row_users['profile_img_small'];

echo "$first_name $last_name";
}



?>

<?php
$user_id = 10;
?>

<a href="*"><?php user_details("$user_id"); ?></a>

<?php
$user_id = 9;
?>

<a href="*"><?php user_details("$user_id"); ?></a>
4

1 に答える 1

5

関数を実行するたびに、そのファイルを一度だけ要求しようとしています。以前に必要だった場合は必要ないと言っているので、以前に必要だったことがわかり、無視されています。したがって、これらの変数は、2 回目に呼び出したときには存在せず、関数は必然的に何もしません。ファイル全体が欠落しているため、他のエラーが発生しないことに非常に驚いています。それは非常に重要であってはなりません。

于 2012-04-08T23:14:57.400 に答える