簡體   English   中英

將二進制字符串插入MYSQL varchar列

[英]Insert a Binary string into MYSQL varchar column

眾所周知,我們將使用mysql_query api將查詢發送到服務器,並且查詢將通過字符串作為參數傳遞。 而且我們將不得不在s_printf之類的C函數調用的mysql_query外部編寫字符串。

sprintf(buffer, “insert into table(describe) values(‘%s’)”, strA);
mysql_query(..., buffer);

The ‘describe’ is a VARCHAR(150).

在某些特殊情況下,我們的函數之一會將幾個C樣式字符串轉換為長字符串,並保留所有結尾的'\\ 0'以形成二進制文件,即以C形式將“ abc”和“ efg”轉換為“ abc \\ 0efg \\” 0”,當然還有給呼叫者的長度(在這種情況下為8)。 但是,out二進制絕對不能在上面的sprintf中用作strA,因為C函數將通過滿足第一個'\\ 0'來截斷字符串。

我們有什么特別的事情可以滿足我們的需求? 我們想將二進制文件插入定義為VARCHAR的列中。 我們試圖將所有的'\\ 0'真正地更改為'\\ 0',這看起來不錯,但是很費時間和代碼。 有沒有其他更簡便的方法?

提前致謝。

您應該使用mysql_real_escape_string()來轉義該字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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