将 INSERT 序列转换为 UPDATE 序列
Convert INSERT sequence into UPDATE sequence
我在 PDO 中有一个 SQL INSERT 序列,例如:
INSERT INTO property (id,name,addres...) VALUES (:id,:name,:address...)
我想执行更新序列,具有相同的字段。问题是我有 150 个字段和大约 3 或 4 个不同的序列,所以如果我手动更新语法可能会花费很多时间和很多错误,是否有任何 "automatic" 转换方法是吗?
非常感谢
我这样做的方法是有一个函数,该函数基于数组中传递的键值对动态构建查询:
function updateTable($table, $values)
{
// Set the base query
$query = 'UPDATE ' . $table;
// Build the query with the key value pairs
foreach($values as $key=>$data) {
$query . ' SET ' . $key . ' = ' . $data . ' ';
}
// Execute your query here
...
}
显然你需要在循环的每次迭代中绑定你的 PDO 对象,但我想给你一个循环的基本布局来处理你想要实现的目标,然后你可以这样调用它:
updateTable('Products', { 'product_name' => 'Apple', 'product_price' => 100.00})
这将构建查询:
UPDATE Products SET product_name = 'Apple', product_price = 100.00
您可以轻松地扩展此查询以提供一个 WHERE
参数,以便您可以优化您的 UPDATE 查询 - 请记住这是目前不安全的,因此请花一些时间对变量进行适当的清理,然后再提交D B!
希望这对您有所帮助。
我在 PDO 中有一个 SQL INSERT 序列,例如:
INSERT INTO property (id,name,addres...) VALUES (:id,:name,:address...)
我想执行更新序列,具有相同的字段。问题是我有 150 个字段和大约 3 或 4 个不同的序列,所以如果我手动更新语法可能会花费很多时间和很多错误,是否有任何 "automatic" 转换方法是吗?
非常感谢
我这样做的方法是有一个函数,该函数基于数组中传递的键值对动态构建查询:
function updateTable($table, $values)
{
// Set the base query
$query = 'UPDATE ' . $table;
// Build the query with the key value pairs
foreach($values as $key=>$data) {
$query . ' SET ' . $key . ' = ' . $data . ' ';
}
// Execute your query here
...
}
显然你需要在循环的每次迭代中绑定你的 PDO 对象,但我想给你一个循环的基本布局来处理你想要实现的目标,然后你可以这样调用它:
updateTable('Products', { 'product_name' => 'Apple', 'product_price' => 100.00})
这将构建查询:
UPDATE Products SET product_name = 'Apple', product_price = 100.00
您可以轻松地扩展此查询以提供一个 WHERE
参数,以便您可以优化您的 UPDATE 查询 - 请记住这是目前不安全的,因此请花一些时间对变量进行适当的清理,然后再提交D B!
希望这对您有所帮助。