我试图将图像存储在数据库中,由于某种原因,它似乎无法正常工作。这是我桌子的结构。
mysql> describe ImageStore;
+---------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+----------+------+-----+---------+-------+
| ImageId | int(11) | NO | PRI | NULL | |
| Image | longblob | NO | | NULL | |
+---------+----------+------+-----+---------+-------+
2 rows in set (0.01 sec)
这是我的查询,它插入图像或至少多数民众赞成在什么:
//Store the binary image into the database
$tmp_img = $this->image['tmp_name'];
$sql = "INSERT INTO ImageStore(ImageId,Image)
VALUES('$this->image_id','file_get_contents($tmp_image)')";
mysql_query($sql);
如果我打印file_get_contents($ tmp_image)的值,那么屏幕上会有大量数据。但是,此值不会存储在数据库中,这就是我面临的问题。
$sql = "INSERT INTO ImageStore(ImageId,Image)
VALUES('$this->image_id','file_get_contents($tmp_image)')";
这会在PHP中创建一个名为的字符串$sql
。暂时不要使用MySQL,因为您尚未执行任何查询。您只是在构建一个字符串。
比如说, - PHP的手段,你可以写一个变量名的魔术$this->image_id
- 内部 双引号和可变仍然被奇迹般地扩大。
此功能称为“变量插值”,不会在函数调用中出现。因此,您在这里要做的就是将字符串"file_get_contents($tmp_image)"
写入数据库。
因此,要连接call的结果file_get_contents($tmp_image)
,您必须跳出字符串并明确地执行操作:
$sql = "INSERT INTO ImageStore(ImageId,Image)
VALUES('$this->image_id','" . file_get_contents($tmp_image) . "')";
(您甚至可以仅从语法中看到它的工作原理。)
现在的问题是,如果二进制数据包含any '
,则查询无效。因此,您应该运行它mysql_escape_string
以对查询操作进行清理:
$sql = "INSERT INTO ImageStore(ImageId,Image)
VALUES('$this->image_id','" . mysql_escape_string(file_get_contents($tmp_image)) . "')";
现在你有一个 真正的 大串,和你的数据库越来越庞大。
最好不要将图像存储在数据库中,您可以在其中提供帮助。
问题内容: 我有以下要存储在数据库中的数组… 我试图搜索谷歌上如何做到这一点,我所能找到的是表明插入数组之前需要对数组进行拆分的信息。它是否正确?抱歉,天真,对于php来说还很陌生。 问题答案: 您不能直接将数组插入 mysql, 因为 mysql 无法 识别php 数据类型。 Mysql 只了解 SQL 。因此,要将数组插入mysql数据库,必须将其转换为sql语句。可以手动或通过库来完成。输出
主要内容:使用 MySQLi 和 PDO 向 MySQL 插入数据,实例 (MySQLi - 面向对象),实例 (MySQLi - 面向过程),实例 (PDO)使用 MySQLi 和 PDO 向 MySQL 插入数据 在创建完数据库和表后,我们可以向表中添加数据。 以下为一些语法规则: PHP 中 SQL 查询语句必须使用引号 在 SQL 查询语句中的字符串值必须加引号 数值的值不需要引号 NULL 值不需要引号 INSERT INTO 语句通常用于向 MySQL 表添加新的记录: 学习更多关于
我是mysql和php的初学者。在这个问题上陷入了困境。不知道问题出在哪里。但是如果我直接执行insert查询,它就会被执行,而如果我从用户那里接受它,它就不会被执行(代码中显示了这一点)。可能问题出在我用来检索用户提交的值的$\u POST[]方法上。我已经提交了两个代码,addbooks。php(用户提交值的表单)和add。php(插入数据库)。
当前,我有一个数组,当通过print_r()输出时,该数组如下所示; 我想将此数据插入到一个表中,每个元素值都属于其各自的字段。 问候。
问题内容: 我想将最大大小为10MB的大文件上传到我的MySQL数据库。使用我将PHP自己的文件上传限制更改为“ 10485760” = 10MB。我最多可以上传10MB的文件。 但是,如果文件大小超过1 MB,则无法将其插入数据库中。 我正在读取所有文件数据,并将其作为要插入LONGBLOB字段中的字符串传递给insert查询。 但是,大于1 MB的文件不会添加到数据库中,尽管我可以用来确保文件
问题内容: 我有一个来自csv的数组,其结构与此类似: 我想将其插入到mysql表中,其中第一个数组的项(名称,年龄,性别)是列标题,而每个后续数组是表中的一行。 有人能建议我做这件事的最好方法,因为我撞墙了,这使我头疼! 问题答案: 以下代码将起作用,但是假定所有嵌套数组的长度都相同,换句话说,每个嵌套数组都包含第一个嵌套数组中定义的所有属性的值。 只要所有其他嵌套数组的长度相同,该解决方案就可