使用mysql列值作为php变量

使用mysql列值作为php变量,php,mysql,Php,Mysql,我有一个SQL查询,用于一个大约有30列的表,并且希望在变量中使用这些列的值,而不首先定义每个列和每个列?你认为最好的方法是什么?我在谷歌上搜索了很多,但还没有真正找到我要找的东西。以下是我正在使用的查询: $pdo = new PDO('mysql:host=localhost;dbname=test', 'customername', 'password'); $sql = "SELECT * FROM customers WHERE id = 1"; $customer = $pdo-&

我有一个SQL查询,用于一个大约有30列的表,并且希望在变量中使用这些列的值,而不首先定义每个列和每个列?你认为最好的方法是什么?我在谷歌上搜索了很多,但还没有真正找到我要找的东西。以下是我正在使用的查询:

$pdo = new PDO('mysql:host=localhost;dbname=test', 'customername', 'password');

$sql = "SELECT * FROM customers WHERE id = 1";
$customer = $pdo->query($sql)->fetch();
echo $customer['first_name']." ".$customer['last_name']."<br />";
$pdo=newpdo('mysql:host=localhost;dbname=test','customername','password');
$sql=“从id=1的客户中选择*”;
$customer=$pdo->query($sql)->fetch();
echo$customer['first_name']。“$customer['last_name']。”

$pdo=newpdo('mysql:host=localhost;dbname=test','customername','password');
$sql=“从id=1的客户中选择*”;
$customer=$pdo->query($sql)->fetch();
摘录(客户);
echo$first_name.““$last_name.”

但是如果您使用它,您的代码将很难可读。最初的$customer['fieldname']是最好的方式。

我可以问一下为什么吗?让它们包含在已有的数组中不是更好,而不是让更多的变量使名称空间变得混乱吗?我有一个问题,当我开始另一个查询时,第一个查询中的值不知怎么就消失了。您是否在第二个查询中重复使用变量名?那么是的,它们将被覆盖。如果要保留数据,请使用单独的变量名。示例(第二个查询):
$customer2=$pdo->query($sql)->fetch()
。现在您有了
$customer
$customer2
。谢谢您,马格纳斯!这很有帮助。如果我的问题太愚蠢的话,请向所有其他人道歉。我需要另一个具有另一个ID的查询以及该页面上的这些变量,因此第二个查询的变量可能会覆盖第一个,对吗?@vloryan-如果另一个查询的结果具有任何相同的列名,那么,是的,这些将被覆盖。是的。如果对您来说是错误的,您可以使用extract函数的第二个参数对其进行修改。或者您可以使用前缀,如果您设置它,该前缀将自动添加到所有提取的变量中。
$pdo = new PDO('mysql:host=localhost;dbname=test', 'customername', 'password');

$sql = "SELECT * FROM customers WHERE id = 1";
$customer = $pdo->query($sql)->fetch();
extract($customer);
echo $first_name." ".$last_name."<br />";