我尝试使用以下代码将图片加载到mysql数据库中:
cursor, db = get_db()
cursor.execute("UPDATE People SET photo = LOAD_FILE(\'myphoto.jpg\')")
cursor.close()
db.commit()
db.close()
我已经能够通过用更简单的东西替换LOAD_FILE
短语来将照片设置为其他值,所以我知道问题源于加载图片。同时,myphoto.jpg位于运行代码的目录中。 MySql在没有抱怨的情况下执行这些命令,但实际上并没有将图片放在db中。可能出现什么问题,我该如何解决?
操作系统是linux。
答案 0 :(得分:0)
检查文件是否已加载到mysql中。
select load_file('/currentdir/file.blob')
+-----------------------------+
| load_file('currentdir/file.blob') |
+-----------------------------+
| NULL |
+-----------------------------+
这可能是因为用户权限。
sudo chown mysql:mysql /currentdir/file.blob
我还读过here,linux上有bug,这个问题可以 因为
apparmor
,禁用它可能会解决问题 这个/etc/init.d/apparmor stop
在ubuntu上。
其他可能的原因!!
检查路径
检查权限
函数是否返回NULL
试试这个query
你的机器上是否有mysql实例?
而且在Linux中你不必放回斜杠,LOAD_FILE(\'myphoto.jpg\')
,试试没有它们,LOAD_FILE('myphoto.jpg')