MySQL准备语句语法

时间:2013-07-08 19:01:12

标签: mysql prepared-statement

我一直用准备好的陈述为我的生命而奋斗。我尝试过的每个网站都有不同的语法。这就是我想要完成的事情:

$stmt = $mysqli->prepare("SELECT IdNum FROM TOAWorkOrdersNew WHERE WorkDate = ? AND TechNum = ?");
$stmt2 = $mysqli->prepare("SELECT IdNum FROM CallVolume WHERE WorkDate = ? AND ANI = ?");

---loop
    ----loop

    $stmt->bind_param('ss', $IncDate, $TechNum);
$stmt->execute();
$stmt->store_result();

$WorkOrders = $stmt->num_rows;
$SubWorkOrders = $SubWorkOrders + $WorkOrders;

$stmt->free_result();
$stmt->close();


$stmt2->bind_param('ss', $IncDate, $CellNum);
$stmt2->execute();
$stmt2->store_result();


$CallCount = $stmt2->num_rows;
$SubCallCount = $SubCallCount + $CallCount;

$stmt2->free_result();
$stmt2->close();

    }
}

语句返回NULL。

1 个答案:

答案 0 :(得分:1)

你不应该在循环中调用$stmt->close()。一旦你关闭声明,它就不再记得它准备好了什么。

此外,您不需要每次循环调用$stmt->bind_param()。参数绑定到引用,因此您可以在循环之前执行此操作一次,然后只更新循环内的变量。

相关问题