php - 使用 PHP 和 PDO 操作 MySQL 数据

标签 php mysql pdo

我正在使用 PHP PDO 和 MySQL,并且想要转换 MySQL 表,如下所示:

|Listing ID | Image ID |
|  1234     |     1    |
|  1234     |     2    |
|  1234     |     3    |
|  1235     |     1    |
|  1235     |     2    |

插入如下所示的 PHP 数组中,我可以使用 PDO 对其进行解析并插入到另一个 MySQL 表中。

[url/path/1234-1:::url/path/1234-2:::url/path/1234-3, url/path/1235-1:::url/path/1234-2]

这是我到目前为止编写的代码。我认为 while 循环的工作方式存在问题,因为它只选取第一个列表字符串并导致无限循环。

//Set folder path
$target_path = realpath($_SERVER['DOCUMENT_ROOT']). "\path\uploads\\";

//Query to download all listing IDs in Markers table 
$query = $db->query("SELECT * FROM image");
$row = $query->fetch(PDO::FETCH_ASSOC);
while ($row = $query->fetch(PDO::FETCH_ASSOC)) {
$temp = $target_path.$row['L_ListingID']."-".$row['L_ImageID'].".jpg";
   //ListingID equals ListingID, append to array
   $LI = substr($temp, 40, 8);
   while($LI = $LI) {
    $temp = $temp.":::".$temp;
    echo $temp;
   }
}

这是无限循环的输出。请注意,它从表中的第二项开始并卡在那里:

C:\path\uploads\40532208-2.jpg:::C:\path\uploads\40532208-2.jpgC:\C:\path\uploads\40532208-2.jpg...ad infinitum

最佳答案

while($LI = $LI) 导致无限循环。

我想这就是你想要的

$target_path = realpath($_SERVER['DOCUMENT_ROOT']). "\path\uploads\\";
$query = $db->query("SELECT * FROM image");
while ($row = $query->fetch(PDO::FETCH_ASSOC)) {
   $temp[] = $row;
}
foreach($temp as $i=>$v){
    $line = $v['L_ListingID']."-".$v['L_ImageID'].".jpg";
    $prod[] = $line.($temp[$i] == $temp[$i+1])?":::":",";
}

echo trim(implode($prod),",");

代码没有经过测试,但我认为方向是这样的。

关于php - 使用 PHP 和 PDO 操作 MySQL 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14049121/

相关文章:

php 插入 mysql 后置变量函数

php - 有没有办法在多维数组中按 ID 对 "key-value store data"进行分组?

php - PDO:调用未定义的方法 DB::query()

php - 将值发布到 php 文件以执行 sql 查询并以 json 格式取回数据

mysql - hibernate如何处理查询语句中的like关键字

python - PyMysql编码问题

mysql - SQL : Inner or Outer Join to delete rows from databases?

php - 每个键值循环自增

php - admin内页使用CSRF重要吗?

php - Magento 上 catalog_category_view 的自定义布局