如何将文本和查询结果组合为 PHP 变量的值
Posted
技术标签:
【中文标题】如何将文本和查询结果组合为 PHP 变量的值【英文标题】:How to Combine text and query result as value of a PHP variable 【发布时间】:2018-01-11 09:11:07 【问题描述】:我有一个变量 ($html),它分配了一些值(稍后我需要使用 MPDF 将其保存为 PDF)。它的一部分价值是通过查询数据库产生的。 现在代码看起来像......
$html = '
<html>
<head>...</head>
<body>
<table>
<thead>
<tr>
<td>ITEM NAME</td>
<td>QTY</td>
<td>PRICE</td>
<td>TOTAL</td>
</tr>
</thead>
<tbody>'.
$items_query = "SELECT * FROM cart WHERE u_id='$u_id'"
or die('Error Querying Database...');
$run_items_query = mysqli_query($con, $items_query);
while($row_query = mysqli_fetch_array($run_items_query))
$item = $row_query['p_name'];
$unit_price = $row_query['price'];
$qty = $row_query['qty'];
$price = $unit_price*$qty;
echo'
<tr>
<td>'.$item.'</td>
<td>'.$qty.'</td>
<td>'.$unit_price.'</td>
<td>'.$price.'</td>
</tr>
';
'<tr>
<td>TOTAL:</td>
<td>0000</td>
</tr>
</tbody>
</table>
</body>
</html>';
我在这里做的是 - 创建简单的表并通过 SQL 查询添加所有 <td>
。我不知道如何将简单文本部分和查询结果部分连接为 $html 变量的值。
现在它只显示查询开始之前值的第一部分,然后显示这个 - 'SELECT * FROM cart WHERE u_id='ee0fivtt9tq39i5mpdhtf9v051' ...而不是它得到的<td>
。
如果你能弄清楚我做错了什么,请告诉我......
【问题讨论】:
无法理解I can't get how to concatenate simple text part and query result part as value to the $html variable
。这是什么意思?在问题中给出你需要的结果样本。
所以最后你需要在$html
变量中获取html内容对吧?
谢谢...@Arun,已解决...
您意识到这是对 sql 注入开放的。如果您重视您的工作和数据库,请使用准备好的语句。我希望这不是现场直播。
【参考方案1】:
使用$html
参数将另一个字符串与.
连接起来检查答案,您正在使用的查询是SQL 注入自愿使用的,而不是我已将查询更新为参数化,这将保护您免受SQL 注入。
$html = '
<html>
<head>...</head>
<body>
<table>
<thead>
<tr>
<td>ITEM NAME</td>
<td>QTY</td>
<td>PRICE</td>
<td>TOTAL</td>
</tr>
</thead>
<tbody>';
$items_query = "SELECT * FROM cart WHERE u_id=?";
//or die('Error Querying Database...'); this don't needs to be here
$query = $con->prepare($item_query);
$query->bind_param('s', $u_id);
//$run_items_query = mysqli_query($con, $items_query);
$result = $query->execute();
while($row_query = $result->fetch_assoc())
$item = $row_query['p_name'];
$unit_price = $row_query['price'];
$qty = $row_query['qty'];
$price = $unit_price*$qty;
$html .='
<tr>
<td>'.$item.'</td>
<td>'.$qty.'</td>
<td>'.$unit_price.'</td>
<td>'.$price.'</td>
</tr>
';
$html .= '<tr>
<td>TOTAL:</td>
<td>0000</td>
</tr>
</tbody>
</table>
</body>
</html>';
echo $html;
享受:-)
【讨论】:
正是我要找的……! ...非常感谢...被选为ANSWER... 如果你问我......那么,我的回答是 - 我遵循“Prateik Darji”的建议......顺便说一句,也感谢你的建议......我付钱注意SQL注入部分... 我已经使用@FunkFortyNiner 更新了查询,现在查询是安全形式的 SQL 注入。以上是关于如何将文本和查询结果组合为 PHP 变量的值的主要内容,如果未能解决你的问题,请参考以下文章