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

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

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

谢谢

最佳答案

如果这些对于所有插入都是相同的,您可以将它们硬编码在查询中 - 无需让您的代码充满无用的东西。越干净越好 - 对吧?

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

关于PHP MySQLi 准备好的语句 - 我应该包括所有字段吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25760402/

相关文章:

php - 连接两个页面返回重复的结果

php - preg_replace 模式

php - PHP 中的 Wav 到 Ogg 或 MP3

php - MySQL 计数匹配行数总是返回 1

Javascript 警报正在打开 PHP 包含文件并且不停留在主页上

mysql - 奇怪的 "all"在“哪里”

php - 如何过滤函数参数

php - 在 Ubuntu 14 上使用 PHP 连接到 MySQL

php - 使用 php、mysql 和 html 创建登录表单

带 WHILE 循环和数组的 PHP 更新语句