1

我想创建一个获取表数据的函数,其中第一个表中的用户名与users第二个表中的所有者相同pets。我希望能够使用$pet_data['fieldname']或来回忆该字段中的任何项目pet_data['fieldname']一般答案会很好,因为我可以编辑代码 xD 这是我的 user_data 函数,我试图应用我想要的,但没有工作:

function user_data($user_id) {
  $data = array();
  $user_id = (int)$user_id;
  $func_num_args = func_num_args();
   $func_get_args = func_get_args();
  if ($func_num_args > 1) {
    unset($func_get_args[0]);
    $fields = '`' . implode('`, `', $func_get_args) . '`';
    $data = mysql_fetch_assoc(mysql_query("SELECT $fields FROM `users` WHERE `user_id` = $user_id"));
    return $data;
  }
}
4

1 回答 1

0

用这个替换你的查询:

SELECT $fields FROM `users`, `pets`
WHERE `user_id` = $user_id
AND `owner` = $user_id

$fields可能包含来自users或的列名pets。如果列名有歧义,则必须通过完全限定它们来解决它们(例如。users.user_id)。

这是您的代码的可能更新:

$fields = '`' . implode('`, `', $func_get_args) . '`';
$data = mysql_query("SELECT $fields FROM `users`, `pets` WHERE `user_id` = $user_id AND `owner` = $user_id");
if ($data === false) {
    die("error on mysql_query: ". mysql_error());
}
$data = mysql_fetch_assoc($data);
于 2013-04-21T00:16:21.200 回答