簡體   English   中英

使用轉義值將mysql數據從一個表移動到另一個表

[英]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">&nbsp;</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">&nbsp;</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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM