PHP MySQLi准备好的声明 - 我应该包括所有字段吗?

时间:2014-09-10 08:13:17

标签: php mysql mysqli

以下是一个例子:

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语句传递它。

这是可行的吗?我问的原因是因为我有TON字段的语句,其中所有行的许多字段完全相同,但只有两三个不同,我从循环中得到结果集。

由于

1 个答案:

答案 0 :(得分:1)

如果所有插入的内容相同,则可以在查询中对其进行硬编码 - 无需使用无用的代码填充代码。更干净,更好 - 对吧?

此外,您可以更改字段以使这些值为DEFAULT值 - 这样就无需将它们放入查询中。