我的PHP不是从MySql中获取数据

时间:2014-04-11 18:18:51

标签: php mysql fetch

我正在创建一个捕获值的Login表单,以便在用户通过常规Login页面时可以在整个会话中使用。我在MySQL中输入如下:

USER_ID |用户名 |密码 |名字 |姓 |电子邮件 |网站 |活性 | DATE_ADDED

我创建了一个捕获数据的函数,但它没有返回任何内容。任何人都可以帮我这个吗?

代码如下所示:

 function user_input($user_id) {
 $input = 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) . ' `';


 $query = mysql_query("SELECT '$fields' FROM Login WHERE user_id = '$user_id' ");
 $input = mysql_fetch_assoc($query);


 print_r($input);
 }
 }

3 个答案:

答案 0 :(得分:2)

 private function user_input($user_id) {

 private $input = array();
 //$user_id = (int) $user_id; //This line may effect your security 

if(isset($input)){

 $func_num_args = func_num_args();
 $func_get_args = func_get_args();

$query = "SELECT ";
for($i = 0 ; $i <=  $func_num_args; $i++){

     if($i==($func_num_args-1))
     {
         $query =$query .$func_get_args[$i];
     }
     else
     {
         $query =$query .$func_get_args[$i].",";
     }

    }
    $query = $query . " FROM Login WHERE `user_id` =" . $user_id ;

   $rs = mysql_query($query);

    while ($getRow = Mysql_fetch_array($rs)){
       self::$input = $getRow;
    }
 }
    return self::$input ; // this will be returning an array of result set 


  }

答案 1 :(得分:1)

$fields = ' ` ' . implode('`, ` ', $func_get_args) . ' `';

这会让你成为字段

` one `, ` two `

这应该是

$fields = '`' . implode('`, `', $func_get_args) . '`';

ALSO

您无需在此

附近放置''
'`one`, `two`' < -WRONG

这是正确的:

 $query = mysql_query("SELECT $fields FROM Login WHERE user_id = '$user_id' ");

还学习PDO !!!

答案 2 :(得分:0)

改变这个 -

$query = mysql_query("SELECT $fields FROM Login WHERE `user_id` = $user_id ");

由于双引号内的变量与之相呼应。如果您在where子句中使用字符串,则必须使其像'".$xyz['name']."'一样。如果它是一个简单的整数,如user_id,你可以避免用双引号或单引号书写。