【问题标题】:UPDATE inner join query with pdo使用 pdo 更新内部连接查询
【发布时间】:2015-07-20 10:38:45
【问题描述】:

我正在尝试使用内部联接通过一个查询更新两个表,但它没有更新或没有显示任何错误。这是代码

$id_prod = 2;
$id_cust = 2;
$sql5 = "UPDATE `customer` 
           INNER JOIN `products` ON products.cust_id=customer.id 
         SET prod_name = 'CAKE' AND name = 'Hassan' 
         WHERE id='$id_cust' AND id='id_prod' ";
$query5 = $conn->prepare($sql5);
$query5->execute(array($id_cust, $id_prod));

【问题讨论】:

  • 它会产生一个错误,但你不是在寻找任何错误。在准备和执行之后添加一些错误处理代码或者只是添加$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

标签: php pdo


【解决方案1】:

可能是要设置的列名错误,如果在列名前加上表名,是不是更好?

像这样:

$id_prod = 2;
$id_cust = 2;
$sql5 = "UPDATE `customer` 
           INNER JOIN `products` ON products.cust_id=customer.id 
         SET __tableName__.prod_name = 'CAKE' AND __tableName__.name = 'Hassan' 
         WHERE __tableName__.id='$id_cust' AND __tableName__.id='id_prod' ";
$query5 = $conn->prepare($sql5);
$query5->execute(array($id_cust, $id_prod));

【讨论】:

  • 您有任何消息错误吗? (见:stackoverflow.com/users/2310830/riggsfolly
  • 如果你录制这个:UPDATE customer INNER JOIN products ON products.cust_id=customer.id SET tableName.prod_name = 'CAKE' AND tableName .name = 'Hassan' WHERE tableName.id='$id_cust' AND tableName.id='id_prod' -- 直接在 phpmyadmin sql 命令 textarea 中,发生了什么?
  • 它是说 0 行影响
  • 您的“产品”和“客户”结构是什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-01
  • 2016-02-27
  • 2020-11-29
  • 1970-01-01
  • 2015-03-05
  • 2023-03-06
相关资源
最近更新 更多