Php 写入PDO删除查询值
我想知道我们是否仍然可以使用新的Php 写入PDO删除查询值,php,mysql,database,pdo,sql-delete,Php,Mysql,Database,Pdo,Sql Delete,我想知道我们是否仍然可以使用新的删除行中的值作为选择,或者我们真的需要在之前选择它吗 示例: 改变这个 $foo = $db->prepare("SELECT * FROM table WHERE id= :id"); $foo->execute(array( "id" => $table_id )); $foo = $foo->fetch(PDO::FETCH_ASSOC); $delete_foo = $bdd->prepare("DELETE FRO
删除行中的值作为选择
,或者我们真的需要在之前选择它吗
示例:
改变这个
$foo = $db->prepare("SELECT * FROM table WHERE id= :id");
$foo->execute(array(
"id" => $table_id
));
$foo = $foo->fetch(PDO::FETCH_ASSOC);
$delete_foo = $bdd->prepare("DELETE FROM table WHERE id = :id");
$delete_foo->execute(array(
"id" => $table_id
));
echo $foo['name'] . " has been deleted !";
为此:
$delete_foo = $bdd->prepare("DELETE FROM table WHERE id = :id");
$delete_foo->execute(array(
"id" => $table_id
));
$delete_foo = $delete_foo->fetch(PDO::FETCH_ASSOC);
echo $delete_foo['name'] . " has been deleted !";
这会更容易。我只是想知道,我使用了第1种方法,但它只是记住了,我没有找到答案。DELETE
查询不会返回任何结果(除了受影响的行之外),因此PDO::query
将没有任何可用数据可获取。DELETE
查询不会返回任何结果(除了受影响的行之外),因此,PDO::query
将没有任何可用数据可获取。在中,delete语句有一个专有扩展名为RETURNING
。提供类似的东西,他们称之为输出
例如,下面的DELETE语句中的OUTPUT DELETED.*
返回从ShoppingCartItem表中删除的所有列:
不幸的是,mysql没有类似于上面的内容。如果删除一行,它将消失(除非回滚事务而不是提交)。如果要选择数据,需要在中的DELETE之前执行Select,DELETE语句有一个专有扩展名为RETURNING
。提供类似的东西,他们称之为输出
例如,下面的DELETE语句中的OUTPUT DELETED.*
返回从ShoppingCartItem表中删除的所有列:
不幸的是,mysql没有类似于上面的内容。如果删除一行,它将消失(除非回滚事务而不是提交)。如果要选择数据,需要在删除之前执行Select。对于提供的示例,额外的Select查询毫无意义。因为你已经有了你的美元价值
我更愿意说,您需要简化整个PDO代码。将下面的代码片段与您的代码片段进行比较
$foo = $db->run("SELECT foo FROM table WHERE value = ?", [$value])->fetchColumn();
$db->run("DELETE FROM table WHERE value = ?", [$value]);
echo "$foo has been deleted!";
run()函数可以通过非常小的PDO修改来实现:
class MyPDO extends PDO
{
public function run($sql, $args = NULL)
{
$stmt = $this->prepare($sql);
$stmt->execute($args);
return $stmt;
}
}
代码取自我的文章,对于提供的示例,额外的select查询毫无意义。因为你已经有了你的美元价值
我更愿意说,您需要简化整个PDO代码。将下面的代码片段与您的代码片段进行比较
$foo = $db->run("SELECT foo FROM table WHERE value = ?", [$value])->fetchColumn();
$db->run("DELETE FROM table WHERE value = ?", [$value]);
echo "$foo has been deleted!";
run()函数可以通过非常小的PDO修改来实现:
class MyPDO extends PDO
{
public function run($sql, $args = NULL)
{
$stmt = $this->prepare($sql);
$stmt->execute($args);
return $stmt;
}
}
代码取自我的文章,为什么不执行echo“$value已被删除!”代码>?为什么不执行回显“$value已被删除!”代码>?