我已经创建了一个函数,可以从用户ID中为我提供用户名。不同的用户ID将在while循环中,因此该函数将被多次使用。它适用于一个用户ID,但如果有多个用户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>
答案 0 :(得分:5)
每次运行该功能时,您都只尝试要求该文件一次。既然你说之前已经需要它就不需要它,它会看到它之前需要 并因此忽略它。因此,第二次调用它时,这些变量不存在,并且函数不可避免地无效。我完全惊讶它不会产生其他错误,因为缺少整个文件。它一定不是非常重要。