mySQL为什么插入数据都要转换成字符才能插入

发布网友 发布时间:2022-04-24 11:05

我来回答

1个回答

热心网友 时间:2022-04-10 01:02

可以用各种语言的读二进制的方法或传参方法来实现来插入

<? 
If($Picture != "none") { 
$PSize = filesize($Picture); 
$mysqlPicture = addslashes(fread(fopen($Picture, "r"), $PSize)); 
mysql_connect($host,$username,$passWord) or die("Unable to connect to SQL server");
@mysql_select_db($db) or die("Unable to select database"); 
mysql_query("INSERT INTO Images (Image) VALUES ($mysqlPicture)") or die("Cant Perform Query"); 
}else { 
echo"You did not upload any picture"; 

?>


资料引用:http://www.knowsky.com/2605.html

--------------------

上面是php的

jsp的也有,你百度 mysql jsp 操作blob

追问望了说了,我说的是C语言。

追答http://blog.knowsky.com/181828.htm

MySQL中的二进制数据的存取
今天看了MySQL的文档,也看了一些网上的文章,了解到了二进制数据在MYSQL中是如何处理的,许多例子是用在图像数据
的存取中,偏偏我要存取的不是图像数据,不过也没有关系,反正都是二进制数据,没有区别.
我现在总结一下在LINUX下如何用C存取二进制数据.

如果是插入二进制数据,你能有如下的步骤:

1,定义一个缓冲区char buf[EB]??(What EB? Enought Big,hehe~~~)

2,把标准的SQL语句用sprintf或strcpy之类的函数填入,直到插入二进制的地方.在下面一步插入二进制.

3,用某种方法读取二进制数据到tmpbuf[SIZE];
? 例如:要插入的是图像文件数据,用fread(tmpbuf, 1, sizeof(tmpbuf), filestream),然后用
mysql_real_escape_string()函数将buf继续填满(注意应在第2步中填入的字串的结束字符'\0'开始填起,即不要
有'\0'),这个函数的原型为:
unsigned long mysql_real_escape_string(MYSQL *mysql, char *to, const char *from, unsigned long length)
。。。。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com