【问题标题】:Is there a way to create variables in php based on what is returned by an sql query? [duplicate]有没有办法根据 sql 查询返回的内容在 php 中创建变量? [复制]
【发布时间】:2019-09-15 09:59:19
【问题描述】:

我创建了一个查询,该查询从数据库中检索用户的街道地址、他们的州和城市。现在我试图将所有这些信息放入一个 $var 中,但我的代码似乎没有工作,我不知道为什么。我是 PHP 新手,所以对于我所犯的任何错误,我深表歉意。

require 'config.php';
$host ="myhost";
$user ="username";
$pass ="mypassword";
$db="mydb";
$mysqli = new mysqli($host, $user, $pass, $db);
if ( $mysqli->connect_errno ) {
    echo $mysqli->connect_error;
    exit();
}
$mysqli->set_charset('utf8');
$sql = "SELECT  addresses.street_address AS street_address, addresses.state AS state, addresses.City AS city
            FROM users
        LEFT JOIN addresses
            ON users.address_id=addresses.address_id
        WHERE username='".$_SESSION['username']."';";
$results = $mysqli->query($sql);
if(!$results) {
    echo $mysqli->error;
    exit();
}
$row = $results->fetch_assoc();

var_dump($row['state']);
var_dump($row['city']);
var_dump($row['street_address']);

var $address= $row['street_address']. $row['city']. $row['state'];

【问题讨论】:

  • PHP 不使用 var 关键字。写$address = ...
  • 您似乎知道这一点,因为您没有将它用于任何其他变量。
  • 你应该得到一个错误信息,如果你没有,你应该确保你显示那些,它会让生活变得更轻松。

标签: php


【解决方案1】:

试试这个

$street = $row['street_address'];
 $city = $row['city'];
$state =  $row['state'];

$address = $street  .  '  '  .  $city .  '  '  .  $state;

echo $address;

【讨论】:

  • 不需要创建额外的变量,只会浪费内存,CP周期。
【解决方案2】:

您可以使用 list() 语言结构。 PHP 5.6 将从最右边的参数开始,但 7.* 将从最左边的参数开始,如手册所述https://www.php.net/manual/en/function.list.php

PHP 5.6

list($city, $state, $streetAddress) = $rows;
$address = "$streetAddress | $city | $state";

PHP 7.*

list($streetAddress, $city, $state) = $rows;
$address = "$streetAddress | $city | $state";

// or

[$streetAddress, $city, $state] = $rows;
$address = "$streetAddress | $city | $state";

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-08-27
  • 1970-01-01
  • 1970-01-01
  • 2011-09-25
  • 1970-01-01
  • 2010-10-29
  • 1970-01-01
相关资源
最近更新 更多