【问题标题】:Miltiple rows update with sql用sql更新多行
【发布时间】:2012-11-15 20:23:34
【问题描述】:

通过一个查询,我得到了两个 php 函数。他们都应该在数据库表中插入一些值。所以第一个

mysql_query("INSERT INTO images (thumb) VALUES ('$path')");

循环做薄。 但是后来我需要在其他列中添加一些值,但问题是所有 thouse 值都存储在数组中。函数的样子。

 function uploading_paths($names_array){
    $data = '(\'' . implode('\'),(\'', $names_array) . '\')';
    mysql_query("INSERT INTO `images` (`image_path`) VALUES $data");

}

那么如何通过一个查询将 $data 数组中的值添加到已填充 thumb 列的行中? 有可能吗?

【问题讨论】:

  • 我想更新。它是在我写它之前插入的,因为我以为只有一列

标签: php sql insert


【解决方案1】:

尝试为此使用 PHP PDO。它使您可以准备一个语句,然后根据需要多次执行它。示例:

$mysql_host = "127.0.0.1";
$mysql_user = "root";
$mysql_password = "";
$mysql_database = "myShop";
$dbLink = new PDO("mysql:host=$mysql_host;dbname=$mysql_database;charset=utf8", $mysql_user, $mysql_password, array(PDO::ATTR_PERSISTENT => true));
$dbLink->setAttribute(PDO::ATTR_EMULATE_PREPARES, true);
$query = $dbLink->prepare("insert into `images` (`thumb`, `path`) values (?, ?);");
foreach ($names_array as $thumb => $path)
{  
    $query->execute(array($thumb, $path)); // note the order as they should appear
}

最终您可以将最后一条路径替换为:

$query = $dbLink->prepare("insert into `images` (`thumb`, `path`) values (:thumb, :path);");
foreach ($names_array as $thumb => $path)
{  
    $query->execute(array(":path" => $path, ":thumb" => $thumb)); // no order restriction
}

...您不必按照字段的顺序提供执行数组。

问候!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-03
    • 2013-10-16
    • 2012-06-30
    • 1970-01-01
    • 1970-01-01
    • 2016-06-04
    相关资源
    最近更新 更多