Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PHP将图像名称数组动态存储到数据库中_Php_Mysql - Fatal编程技术网

如何使用PHP将图像名称数组动态存储到数据库中

如何使用PHP将图像名称数组动态存储到数据库中,php,mysql,Php,Mysql,我使用jQuery插件Uploadify来上传文件,并使用简单的mysql查询将图像名称和路径存储到数据库中,然后检索它 我的MySQL数据库表正在使用以下实体 id int(20) image_url varchar(255) 我的图像存储过程是这样的,我首先重命名文件,给它一个唯一的名称,并将其移动到所需的目录。然后将带有路径的图像名称存储到数据库中 目前,通过使用简单的mysql INSERT语句,我存储了一个文件名 现在我想上传带有路径的图像名称数组。或者我想将尽可能多的图像动态存储

我使用jQuery插件Uploadify来上传文件,并使用简单的mysql查询将图像名称和路径存储到数据库中,然后检索它

我的MySQL数据库表正在使用以下实体

id int(20) 
image_url varchar(255)
我的图像存储过程是这样的,我首先重命名文件,给它一个唯一的名称,并将其移动到所需的目录。然后将带有路径的图像名称存储到数据库中

目前,通过使用简单的mysql INSERT语句,我存储了一个文件名

现在我想上传带有路径的图像名称数组。或者我想将尽可能多的图像动态存储到单个表col image_url中,出于某种原因,我计划存储4个或更多图像,我希望所有四个图像都有一个特定的id号

我该怎么做


谢谢您

编辑2
我删除了以前的脚本,这里有一个新脚本:


基本上,我想要实现的是在将图像路径插入数据库时,我希望将名称存储为数组。这样我就可以在一个特定的id中存储任意数量的图像,例如id 1将有3个图像,id 2将有5个图像,id 3将有4个图像等等

最好的方法是为每个图像url添加一个单独的条目。您也可以使用单个条目并将所有URL存储为一个数组,但由于您将其存储在一个数据库中,因此这不是很有用。单独存储每个条目可以更容易地访问和更新数据

另外,请确保表中的“id”字段不是主键/自动递增字段。否则,您将无法多次使用同一id。我在这里修正了:

// array with your images
$images = array('url1','url2','url3');

// determine a new id
$sql = "SELECT MAX(id) FROM images";
$res = mysql_query($sql);
list($id) = mysql_fetch_row($res);

// highest current id, plus one
$id++;

// now create a values array to insert in the database
$values = array();

foreach ($images as $image) {
  $values[] = "($id, '".mysql_real_escape_string($image)."')";
}

// comma-separate the values
$values = implode(',',$values);

// run the query
$sql = "INSERT INTO images (id, image_url) VALUES $values";
mysql_query($sql);
如果确实要存储数组,最好对数据进行
序列化
,并在检索数据时使用
取消序列化
。例如:

$images = array(...);

$images = serialize($images);

$sql = "INSERT INTO images (image_url) VALUES ($images)";

要添加图像,应首先检索数据,取消阵列序列化,用新图像更新阵列,再次序列化,更新数据库条目。

编辑2
我删除了以前的脚本,这里有一个新脚本:


基本上,我想要实现的是在将图像路径插入数据库时,我希望将名称存储为数组。这样我就可以在一个特定的id中存储任意数量的图像,例如id 1将有3个图像,id 2将有5个图像,id 3将有4个图像等等

最好的方法是为每个图像url添加一个单独的条目。您也可以使用单个条目并将所有URL存储为一个数组,但由于您将其存储在一个数据库中,因此这不是很有用。单独存储每个条目可以更容易地访问和更新数据

另外,请确保表中的“id”字段不是主键/自动递增字段。否则,您将无法多次使用同一id。我在这里修正了:

// array with your images
$images = array('url1','url2','url3');

// determine a new id
$sql = "SELECT MAX(id) FROM images";
$res = mysql_query($sql);
list($id) = mysql_fetch_row($res);

// highest current id, plus one
$id++;

// now create a values array to insert in the database
$values = array();

foreach ($images as $image) {
  $values[] = "($id, '".mysql_real_escape_string($image)."')";
}

// comma-separate the values
$values = implode(',',$values);

// run the query
$sql = "INSERT INTO images (id, image_url) VALUES $values";
mysql_query($sql);
如果确实要存储数组,最好对数据进行
序列化
,并在检索数据时使用
取消序列化
。例如:

$images = array(...);

$images = serialize($images);

$sql = "INSERT INTO images (image_url) VALUES ($images)";
要添加图像,您应该首先检索数据,取消阵列序列化,用新图像更新阵列,再次序列化,更新数据库条目。

一点也不好,但您可以这样做:

一点也不好,但你可以这样做:


基本上,我想要实现的是在将图像路径插入数据库时,我希望将名称存储为数组。这样我就可以在一个特定的id中存储任意数量的图像,例如,id 1将有3个图像,id 2将有5个图像,id 3将有4个图像等等。基本上,我想要实现的是,在插入数据库时,我希望将图像路径与名称存储为数组。这样我就可以在一个特定的id中存储任意数量的图像,例如id 1将有3个图像,id 2将有5个图像,id 3将有4个图像等等。