[英]Move mysql data from one table to another with escaped values
我將數據從1個表移到另一個表,並且它與可能包含一些單引號和雙引號的自由文本字段分開工作。
我只包含了麻煩的值,這些值是從上一頁的表單中傳遞的,然后使用以下方法檢索:
$Con_Details = mysqli_real_escape_string($con, $_POST['Con_Details']);
$Res_Response = mysqli_real_escape_string($con, $_POST['Res_Response']);
數據像這樣進入第一個表。
$sql="INSERT INTO t_table
(Con_Details,Res_Response) VALUES ('$Con_Details','$Res_Response')";
if (!mysqli_query($con,$sql)) {die('Error: ' . mysqli_error($con));
}
稍后,我將顯示表中的行,並在選擇了某行后,通過下一頁再次使用以下命令檢索所有值:
$Con_Details = mysqli_real_escape_string($con, $_POST['Con_Details']);
$Res_Response = mysqli_real_escape_string($con, $_POST['Res_Response']);
它們顯示在這樣的表中:
<table>
<tr><td colspan="5"> </td></tr>
<tr>
<td width="200" align="right" valign="top">Concern Details:<br> (Max 500)</td>
<td colspan="3" bgcolor="#ffffff"><?php echo "$Con_Details"; ?></td>
<td></td>
</tr>
<tr>
<tr><td colspan="5"> </td></tr>
<td width="200" align="right" valign="top">Response Details:<br> (Max 500)</td>
<td colspan="3" bgcolor="#ffffff"><?php echo "$Res_Response"; ?></td>
<td></td>
</tr>
</table>
其中一個值顯示像這樣的“不顯示全文”,而另一個顯示像這樣的“不顯示全文”
我想將行移動到新表中,但是它會截斷該字段,並且僅顯示“ Don \\”或“ Don \\”
我如何執行此操作,因為兩個表都不相同,它們都有一個自動增量ID,但是表2上還有一個名為“ id_orig”的列,用於存儲表1中的ID。
謝謝
PHP,在PHP中,您需要對不同的目標使用不同的轉義機制。
mysqli_real_escape_string()
僅用於在mysqli_*
API中構建MySQL語句。
urldecode()
用於構建網址。
htmlentities()
用於在構建HTML頁面時轉義&
, <
和其他內容。
您第一次使用mysqli_real_escape_string()
是正確的; 第二個應該使用htmlentities()
代替。
其他注意事項...
從MySQL讀取數據時(例如,使用SELECT
),您無需取消轉義返回的字符串。
PHP的“魔術引號” (取決於您的設置)可能在您看到$_GET
和$_POST
以及$_REQUEST
值之前就弄亂了。 如果是這樣, 則您需要進行某種類型的轉義。 (詳細信息取決於您使用的設置。)可能要變形的字符包括"&<>'\\
。建議將它們放入form
,然后執行echo strlen()
以查看它是否為6個字符或添加了一些轉義字符。 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.