php的query怎么搞成数组

fiy 其他 189

回复

共3条回复 我来回复
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    在PHP中,可以使用多种方式将query(查询)结果转化成数组。这里列举了两种常用的方法:

    1. 使用mysqli扩展
    “`php
    // 假设已经建立了数据库连接并选择了数据库

    $query = “SELECT * FROM table_name”;
    $result = mysqli_query($connection, $query);

    if ($result) {
    $array_result = array();
    while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
    $array_result[] = $row;
    }
    mysqli_free_result($result);
    }
    “`

    在这个方法中,首先通过`mysqli_query()`函数发送查询语句并返回一个结果集对象。然后使用`mysqli_fetch_array()`函数遍历结果集,每次将结果保存到数组中,直到所有结果都被保存完毕。最后,可以通过`mysqli_free_result()`函数释放结果集内存。

    2. 使用PDO扩展
    “`php
    // 假设已经建立了数据库连接并选择了数据库

    $query = “SELECT * FROM table_name”;
    $result = $connection->query($query);

    if ($result) {
    $array_result = $result->fetchAll(PDO::FETCH_ASSOC);
    }
    “`

    这种方法使用了PHP的PDO扩展。首先通过`query()`函数发送查询语句并返回一个结果集对象。然后使用`fetchAll()`方法将所有结果作为关联数组保存到`$array_result`变量中。

    无论使用哪种方法,最终都可以获得一个包含查询结果的数组`$array_result`,每一行数据都表示为一个关联数组。可以根据需要对这个数组进行进一步的处理和使用。

    2年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    在PHP中,将查询结果转换为数组可以通过以下几种方法实现:

    1. 使用mysqli扩展
    使用mysqli扩展库连接数据库,并执行查询语句,可以通过mysqli_fetch_assoc()方法将结果集转换为关联数组。

    “`php
    // 连接数据库
    $conn = mysqli_connect(“localhost”, “username”, “password”, “database_name”);
    if (!$conn) {
    die(“连接失败: ” . mysqli_connect_error());
    }

    // 执行查询语句
    $query = “SELECT * FROM table_name”;
    $result = mysqli_query($conn, $query);

    // 将结果集转换为关联数组
    $data = array();
    while ($row = mysqli_fetch_assoc($result)) {
    $data[] = $row;
    }

    // 打印数组
    print_r($data);

    // 关闭连接
    mysqli_close($conn);
    “`

    2. 使用PDO扩展
    使用PDO扩展库连接数据库,并执行查询语句,可以使用fetchAll()方法将结果集转换为关联数组。

    “`php
    // 连接数据库
    $dsn = “mysql:host=localhost;dbname=database_name”;
    $user = “username”;
    $password = “password”;
    $conn = new PDO($dsn, $user, $password);

    // 执行查询语句
    $query = “SELECT * FROM table_name”;
    $result = $conn->query($query);

    // 将结果集转换为关联数组
    $data = $result->fetchAll(PDO::FETCH_ASSOC);

    // 打印数组
    print_r($data);

    // 关闭连接
    $conn = null;
    “`

    3. 使用mysql扩展
    注意:mysql扩展已在PHP7.0.0版本中弃用,推荐使用mysqli或PDO扩展。

    “`php
    // 连接数据库
    $conn = mysql_connect(“localhost”, “username”, “password”);
    if (!$conn) {
    die(“连接失败: ” . mysql_error());
    }

    // 选择数据库
    mysql_select_db(“database_name”, $conn);

    // 执行查询语句
    $query = “SELECT * FROM table_name”;
    $result = mysql_query($query);

    // 将结果集转换为关联数组
    $data = array();
    while ($row = mysql_fetch_assoc($result)) {
    $data[] = $row;
    }

    // 打印数组
    print_r($data);

    // 关闭连接
    mysql_close($conn);
    “`

    这些方法可以将查询结果转换为关联数组,其中每个数组元素代表一条查询记录。你可以根据自己的需要进行适当调整,例如添加查询条件、修改数据库连接参数等。

    2年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    将PHP的query字符串转换成数组可以使用parse_str()函数。parse_str()函数将解析query字符串,并将其存储为关联数组。

    下面是详细的操作流程:

    1. 获取query字符串。

    在PHP中,可以使用$_SERVER[‘QUERY_STRING’]或者$_GET参数来获取URL中的query字符串。

    “`php
    $queryString = $_SERVER[‘QUERY_STRING’]; //或者 $queryString = $_GET;
    “`

    2. 使用parse_str()函数转换为数组。

    “`php
    $array = array();
    parse_str($queryString, $array);
    “`

    完整代码示例:

    “`php
    $queryString = $_SERVER[‘QUERY_STRING’];
    $array = array();
    parse_str($queryString, $array);

    print_r($array);
    “`

    示例输出:

    “`
    Array
    (
    [name] => John Doe
    [age] => 25
    [city] => New York
    )
    “`

    在上述示例中,假设URL为`http://example.com/?name=John%20Doe&age=25&city=New%20York`,将query字符串转换成数组后,数组中的键值对分别为`name => John Doe`、`age => 25`和`city => New York`。

    需要注意的是,如果query字符串中存在重复的键,parse_str()函数默认会将其解析为数组。

    如果不希望parse_str()函数将重复键解析为数组,可以使用这样的方式:

    “`php
    $queryString = $_SERVER[‘QUERY_STRING’];
    $array = array();
    parse_str($queryString, $array);

    // 如果同一个键存在多个值,只保留最后一个值
    $array = array_map(function($value){
    return is_array($value) ? end($value) : $value;
    }, $array);

    print_r($array);
    “`

    通过上述操作,可以将query字符串转换成数组,并且根据实际需求选择是否保留重复键的所有值。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部