这是一个例子:
if($stmt = $mysqli -> prepare("
INSERT INTO
jos_virtuemart_product_categories
(
virtuemart_product_id,
virtuemart_category_id,
ordering
)
VALUES
(
?,
?,
0
)"))
{
/* Bind parameters
s - string, b - blob, i - int, etc */
$stmt -> bind_param("ii", $pid, $productcategory);
/* Execute it */
$stmt -> execute();
/* Bind results */
$stmt -> bind_result($result);
/* Fetch the value */
$stmt -> fetch();
/* Close statement */
$stmt -> close();
}
现在,如果您看一下我的一个插入,我直接插入 0,而不是通过 prepare 语句传递它。
这可行吗?我问的原因是因为我有包含大量字段的语句,其中所有行的许多字段完全相同,但可能只有两三个不同,这是我从循环中得到的结果集。
谢谢
最佳答案
如果这些对于所有插入都是相同的,您可以将它们硬编码在查询中 - 无需让您的代码充满无用的东西。越干净越好 - 对吧?
此外,您可以更改字段,使这些值为默认值 - 这样就无需将它们放入查询中。
关于PHP MySQLi 准备好的语句 - 我应该包括所有字段吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25760402/