使用php explode()将数组存储到mySQL中
我正在为车展制作一个网站,我想在数据库中存储图像(只是URL),我想做的是将所有图像添加到表中的同一单元格中 然后在检索时,我想在php中使用explode()命令,这样我就可以分离每个URL并使用循环来显示它们 我面临的问题是,我不知道应该使用什么作为分隔符,我不能使用任何可以在windows、mac或Linux中使用的文件名,我担心使用系统保留密钥会导致问题。 我还担心保存这些信息的数据类型,我认为文本在这里是最好的,但我听到很多人说它会导致问题 明确地说,这个想法是: 当有人上传3张图片时,这些图片将被上传到一个文件夹中,然后这些名称将被提取并放入一个字符串中(在添加目录名称之后),在它们之间加一个分隔符,然后存储在数据库中。 然后,我使用这个字符串,使用explode()将分离的数据存储在一个数组中,并使用一个循环来显示一个图像,其中源是数组中存储的数据 我需要一个特殊的分隔符或其他方式。。。有人能帮我做这件事吗?或者告诉我另一种保存图像的方法,而不会有潜在的风险!我见过很多网站使用动态要点(列表),但我从来没有得到一个代码,甚至是一个如何做他们的想法 编辑:使用php explode()将数组存储到mySQL中,php,mysql,Php,Mysql,我正在为车展制作一个网站,我想在数据库中存储图像(只是URL),我想做的是将所有图像添加到表中的同一单元格中 然后在检索时,我想在php中使用explode()命令,这样我就可以分离每个URL并使用循环来显示它们 我面临的问题是,我不知道应该使用什么作为分隔符,我不能使用任何可以在windows、mac或Linux中使用的文件名,我担心使用系统保留密钥会导致问题。 我还担心保存这些信息的数据类型,我认为文本在这里是最好的,但我听到很多人说它会导致问题 明确地说,这个想法是: 当有人上传3张图片时
$array = array(
'/path/to/file/1',
'/path/to/file/2',
'/path/to/file/3'
);
foreach($array as $path) {
$path = $path . '|';
mysqli_query($connect, "INSERT INTO files (path) VALUES ('$path');
}
$query = mysqli_query($connect, "SELECT path FROM files");
$row = mysqli_fetch_assoc($query);
$paths = explode('|', $row['path']);
foreach($paths as $path) {
echo $path . '<br>';
}
我目前使用的方法是10行,每个图像1行。。但是这里的问题是,用户不能添加超过10个图像,如果他有少于10个图像,那么将很少显示空图像。(我知道空图像的解决方案,但无法添加更多图像。)如果由于任何技术原因,无法在单独的表中存储每个图像的一行,然后,您应该对图像路径上的数组进行
json\u编码,并将结果存储在数据库中。如果由于任何技术原因,无法将每个图像的一行存储在单独的表中,然后,您应该对图像路径上的数组进行json\u编码,并将结果存储在数据库中。如果您不更改数据库,则应该尝试。我认为下面的链接对您很有用
你可以用任何人
如果你把桌子设计成
Table-user
user_id
username
另一个用于用户图像的表
Table-images
serial_num
user_id
image_url
然后可以为一个用户存储多个图像。这里图像表的用户id实际上是用户表的用户id的外键。
您正在使用,所以它对您有好处,否则您可以使用数据库如果您不更改数据库,那么您应该尝试。我认为下面的链接对您有用
你可以用任何人
如果你把桌子设计成
Table-user
user_id
username
另一个用于用户图像的表
Table-images
serial_num
user_id
image_url
然后可以为一个用户存储多个图像。这里图像表的用户id实际上是用户表的用户id的外键。
您正在使用,因此它对您有好处,否则您可以使用数据库解决方案一:
$array = array(
'/path/to/file/1',
'/path/to/file/2',
'/path/to/file/3'
);
foreach($array as $path) {
$path = $path . '|';
mysqli_query($connect, "INSERT INTO files (path) VALUES ('$path');
}
$query = mysqli_query($connect, "SELECT path FROM files");
$row = mysqli_fetch_assoc($query);
$paths = explode('|', $row['path']);
foreach($paths as $path) {
echo $path . '<br>';
}
创建一个名为Images
的表,该表包含3列(id
,image\u path
,user\u id
),每次用户上载图像时,将其插入该表中,如果要显示指定用户的上载,请在脚本中通过user\u id
:
$user_id = 1 // The specified user id;
mysqli_query($connect, "SELECT * FROM images WHERE user_id = '$user_id'");
// And Loop here trough images
解决方案二:
$array = array(
'/path/to/file/1',
'/path/to/file/2',
'/path/to/file/3'
);
foreach($array as $path) {
$path = $path . '|';
mysqli_query($connect, "INSERT INTO files (path) VALUES ('$path');
}
$query = mysqli_query($connect, "SELECT path FROM files");
$row = mysqli_fetch_assoc($query);
$paths = explode('|', $row['path']);
foreach($paths as $path) {
echo $path . '<br>';
}
将图像路径插入到一列中
表files
包含一列名为path
将值插入文件表:
$array = array(
'/path/to/file/1',
'/path/to/file/2',
'/path/to/file/3'
);
foreach($array as $path) {
$path = $path . '|';
mysqli_query($connect, "INSERT INTO files (path) VALUES ('$path');
}
$query = mysqli_query($connect, "SELECT path FROM files");
$row = mysqli_fetch_assoc($query);
$paths = explode('|', $row['path']);
foreach($paths as $path) {
echo $path . '<br>';
}
现在显示结果:
$array = array(
'/path/to/file/1',
'/path/to/file/2',
'/path/to/file/3'
);
foreach($array as $path) {
$path = $path . '|';
mysqli_query($connect, "INSERT INTO files (path) VALUES ('$path');
}
$query = mysqli_query($connect, "SELECT path FROM files");
$row = mysqli_fetch_assoc($query);
$paths = explode('|', $row['path']);
foreach($paths as $path) {
echo $path . '<br>';
}
$query=mysqli\u query($connect,“从文件中选择路径”);
$row=mysqli\u fetch\u assoc($query);
$path=分解(“|”,$row['path']);
foreach($path作为$path){
回显$path。“
”;
}
解决方案一:
$array = array(
'/path/to/file/1',
'/path/to/file/2',
'/path/to/file/3'
);
foreach($array as $path) {
$path = $path . '|';
mysqli_query($connect, "INSERT INTO files (path) VALUES ('$path');
}
$query = mysqli_query($connect, "SELECT path FROM files");
$row = mysqli_fetch_assoc($query);
$paths = explode('|', $row['path']);
foreach($paths as $path) {
echo $path . '<br>';
}
创建一个名为Images
的表,该表包含3列(id
,image\u path
,user\u id
),每次用户上载图像时,将其插入该表中,如果要显示指定用户的上载,请在脚本中通过user\u id
:
$user_id = 1 // The specified user id;
mysqli_query($connect, "SELECT * FROM images WHERE user_id = '$user_id'");
// And Loop here trough images
解决方案二:
$array = array(
'/path/to/file/1',
'/path/to/file/2',
'/path/to/file/3'
);
foreach($array as $path) {
$path = $path . '|';
mysqli_query($connect, "INSERT INTO files (path) VALUES ('$path');
}
$query = mysqli_query($connect, "SELECT path FROM files");
$row = mysqli_fetch_assoc($query);
$paths = explode('|', $row['path']);
foreach($paths as $path) {
echo $path . '<br>';
}
将图像路径插入到一列中
表files
包含一列名为path
将值插入文件表:
$array = array(
'/path/to/file/1',
'/path/to/file/2',
'/path/to/file/3'
);
foreach($array as $path) {
$path = $path . '|';
mysqli_query($connect, "INSERT INTO files (path) VALUES ('$path');
}
$query = mysqli_query($connect, "SELECT path FROM files");
$row = mysqli_fetch_assoc($query);
$paths = explode('|', $row['path']);
foreach($paths as $path) {
echo $path . '<br>';
}
现在显示结果:
$array = array(
'/path/to/file/1',
'/path/to/file/2',
'/path/to/file/3'
);
foreach($array as $path) {
$path = $path . '|';
mysqli_query($connect, "INSERT INTO files (path) VALUES ('$path');
}
$query = mysqli_query($connect, "SELECT path FROM files");
$row = mysqli_fetch_assoc($query);
$paths = explode('|', $row['path']);
foreach($paths as $path) {
echo $path . '<br>';
}
$query=mysqli\u query($connect,“从文件中选择路径”);
$row=mysqli\u fetch\u assoc($query);
$path=分解(“|”,$row['path']);
foreach($path作为$path){
回显$path。“
”;
}
您可以使用任何类型的
序列化(serialize
,json\u encode
),当放置数组和
反序列化(unserialize
,json\u decode
),当需要使用时
但是我建议您为图像创建一个新表,例如使用car\u id
字段。
然后你就可以加入它,得到一切
它可以是CarImages('id','car\u id','image\u file')
另外,我建议在CarImages.car\u id->Cars.id
上添加外键约束
,
然后,当汽车被移除时,孤立图像将被级联移除
存储序列化值总是一个坏主意。您可以使用任何类型的
序列化(serialize
,json\u encode
),当放置数组和
反序列化(unserialize
,json\u decode
),当需要使用时
但是我建议您为图像创建一个新表,例如使用car\u id
字段。
然后你就可以加入它,得到一切
它可以是CarImages('id','car\u id','image\u file')
另外,我建议在CarImages.car\u id->Cars.id
上添加外键约束
,