简体   繁体   English

PHP / mysql获取数组中的多个变量

[英]PHP/mysql fetch multiple variables in array

I am new to PHP. 我是PHP新手。 I wanted to create a new record in another table but just one new variable gets returned. 我想在另一个表中创建一条新记录,但是只返回一个新变量。 I've tried following: 我试过以下:

$user_id = mysql_real_escape_string($_POST['user_id']);
$user_name = mysql_query("SELECT user_name FROM accept WHERE user_id=".$user_id." ");
$row1 = mysql_fetch_array($user_name);
$server = mysql_query("SELECT server FROM accept WHERE user_id=".$user_id." ");
$row2 = mysql_fetch_array($server);
$url = mysql_query("SELECT link FROM accept WHERE user_id=".$user_id."");
$row3 = mysql_fetch_array($url);
$lpoints = mysql_real_escape_string($_POST['lpoints']);

And my result is this. 我的结果就是这样。 在此处输入图片说明

First of all, combine your queries into one: 首先,将您的查询合并为一个:

$user_id = mysql_real_escape_string($_POST['user_id']);
$user_info = mysql_query("SELECT user_name, server, link FROM accept WHERE user_id=".$user_id." ");
$row = mysql_fetch_array($user_info);
$lpoints = mysql_real_escape_string($_POST['lpoints']);

In order to create a new record, you will need INSERT INTO, to change existing records use UPDATE. 为了创建新记录,您将需要INSERT INTO,使用UPDATE更改现有记录。

When you're fetching info from the database, it will be an array so you will need to use it accordingly. 当您从数据库中获取信息时,它将是一个数组,因此您需要相应地使用它。 So essentially, to use the variables it will be like this: 因此,从本质上讲,要使用变量,它将是这样的:

$row['user_name'] or $row['server'] etc.. $row['user_name']$row['server']等。

Also, look into using mysqli instead. 另外,考虑改用mysqli。 You will need to change your connection script and some other syntax but it needs to be done. 您将需要更改连接脚本和其他语法,但是需要完成。 mysql is deprecated, insecure, and future support is not there so you will need to change it later anyway. mysql已被弃用,不安全,并且不存在未来的支持,因此无论如何您都将需要对其进行更改。

You should use pdo or mysqli and here is your code; 您应该使用pdo或mysqli,这是您的代码;

  $user_id = &$_POST["user_id"];
    if($user_id){
        $result = mysql_query("select user_name,server,link,lpoints from accept where user_id='".mysql_real_escape_string($user_id)."'");
        /*You should use single quotes for escaping sql injection*/
        if($result){
            $vars = mysql_fetch_array($result);
            if($vars){
                list($username,$server,$link,$lpoints) = $vars;
            }
            else{
                //do something with errors
            }
            mysql_free_result($result);
        }
        else{
            //do something with errors
        }
    }
    else{
        //do something with errors
    }

Try This- 尝试这个-

$user_id = mysql_real_escape_string($_POST['user_id']);
$result = mysql_query("SELECT user_name, server, link FROM accept WHERE user_id=".$user_id." ");
$row=mysql_fetch_array($result)
$row1=$row['user_name'];
$row2=$row['server'];
$row3=$row['link'];
$lpoints = mysql_real_escape_string($_POST['lpoints']);

Now you got what you wanted based on your requirement use the data to insert or update. 现在,您可以根据需要使用数据来插入或更新所需的内容。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM