当我执行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:
答案 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'];
从这里你应该能够自由地回应变量。