结果Mysql分配PHP变量

时间:2014-02-27 06:54:15

标签: php mysql arrays

当我执行mysql select语句时,我在echo'ing $ result时得到以下内容;

echo $row['comment2'];

给我这个:

$fullname = ddasdfd; 
$bacc = 324234234; 
$brouting = 23423434; 
$btype = checking; 
$btype2 = personal; 
$bankname = 234234234; 

我如何使用我在mysql表中选择文本字段时得到的结果并将其分配给php变量,以便我可以这样做:

echo $fullname;

非常感谢我能得到的任何帮助!

当前代码:

$query = "select * FROM `store`.`oc_order` WHERE `order_status_id`='10' AND `achgroup`='' ORDER BY `date_added` LIMIT 10"; 
  $result = mysql_query($query,$db) or die(mysql_error());
  while($row = mysql_fetch_array($result)) {

  echo $row['comment2'];

我想要回声ddasdfd:

3 个答案:

答案 0 :(得分:2)

虽然最明显的方式是涉及eval() - 我强烈建议你避免这种情况。这完全不安全。

因此,您可以通过一些正则表达式和extract()结果来解决您的情况:

$result='$fullname=ddasdfd; $bacc=324234234; $brouting=23423434; $btype=checking; $btype2=personal; $bankname=234234234;';
preg_match_all('/\$([a-zA-Z][a-zA-Z0-9]*)\s*\=\s*([^;]*);/ms', $result, $matches);
$matches = array_combine($matches[1], $matches[2]);
extract($matches); //now $fullname, $bacc and so on are in global scope

请注意:

  • 它将检查语法。是的,如果语法不正确,失败
  • 检查变量是否有效名称
  • 检查值是否“正常”(因此分隔符为;

事实上,它不应该这样做(因为正则表达式不是可能或应该用于此类问题的东西)。更多地说,作为更正确的方法,我看到你的初始数据的规范化,你会避免这样的事情 - 即处理解析/执行PHP代码。

答案 1 :(得分:1)

如果$ result变量包含一个字符串,其中var_name = value由\ n分隔,则可以执行以下操作:

$results = explode('\n', $results);
foreach ($results as $result){
    eval($result);
}

echo $fullname;

注意,eval会导致重要的安全问题。 不要评估不受信任的数据。

答案 2 :(得分:0)

没有看过你的代码,它应该是这样的:

$resultsArray = mysql_fetch_assoc($result);
$fullname = $resultsArray['fullname'];
$brouting = $resultsArray['brouting']; 
$btype = $resultsArray['btype']; 
$btype2 = $resultsArray['btype2']; 
$bankname = $resultsArray['bankname']; 

从这里你应该能够自由地回应变量。