【发布时间】:2021-05-04 02:23:21
【问题描述】:
从我的 php 页面我发送文件上传内容为
$imgData = addslashes(file_get_contents($_FILES['userImage']['tmp_name']));
$imgData= base64_encode($imgData);
然后将其发送到有效负载 - python 中的 REST API
$call->send('{"payload" : { "dbstr" :"' . DEF_DB . '", "tblCode" : "' . USE_INF . '", "use_cod": "'.$use_cod.'", "use_pas": "'.$use_pas.'","use_nam": "'.$use_nam.'","use_dob": "'.$use_dob.'","use_ema": "'.$use_ema.'","use_des": "'.$use_des.'","use_pfe": "'.$imgData.'"}');
然后在我的python代码中我这样写
use_pfe = item_dict['payload']['use_pfe']
imgdata1 = use_pfe.encode("utf-8")
imgdata2 = base64.b64decode(imgdata1)
现在我尝试使用 sql 将其插入到我的数据库中,其中图像列是二进制(blob)类型
cursUserAU.execute("insert into " + tblCode + " (use_cod, use_pass, use_nam, use_dob, use_email, use_desig, use_profile) values ('" + use_cod +"' , '"+ use_pas +"', '"+ use_nam +"', '"+ use_dob +"', '"+ use_ema +"', '"+ use_des +"', "+ imgdata2 +")")
但这以错误告终...我做得对吗?还是缺少任何部分?我不想将此文件保存在任何目录中,我只想将其直接保存在 db 中。请帮助我提出建议或任何资源。提前致谢。
更多详情如下
我正在使用adsdb python驱动连接优势数据库服务器数据库。
在python中
connUserAU = adsdb.connect(DataSource=datasource, ServerType='3', UserID='adssys', Password='')
cursUserAU = connUserAU.cursor()
sql = "insert into " + tblCode + " (use_cod, use_pass, use_nam, use_dob, use_email, use_desig, use_profile) values (?, ?, ?, ?, ?, ?, ?)"
cursUserAU.execute(sql, (use_cod, use_pas, use_nam, use_dob, use_ema, use_des, imgdata))
connUserAU.commit()
cursUserAU.close()
use_profile 之上是 blob 列类型
这里是数据库列类型
use_cod Char( 10 ),
use_pass Char( 10 ),
use_nam Char( 30 ),
use_dob Date,
use_email Char( 50 ),
use_desig Char( 30 ),
use_profile Blob,
user_gender Char( 1 ),
use_profile2 CIChar( 50 )
【问题讨论】:
标签: php sql json python-2.7 advantage-database-server