Php 多个准备语句的问题

Php 多个准备语句的问题,php,mysqli,prepared-statement,Php,Mysqli,Prepared Statement,问题就在这里。我准备了一份声明,如下所示: $select_something = $db->stmt_init(); $select_something->prepare (" SELECT whatever FROM table "); $select_something->execute(); $select_something->bind_result($whatever); 当你独自一人的时候,它会起作用。当我在执行后添加另一个时,它也会工作。 但当我试着先

问题就在这里。我准备了一份声明,如下所示:

$select_something = $db->stmt_init();
$select_something->prepare ("
SELECT whatever 
FROM table
");
$select_something->execute();
$select_something->bind_result($whatever);
当你独自一人的时候,它会起作用。当我在执行后添加另一个时,它也会工作。 但当我试着先准备它们时:

$select_something = $db->stmt_init();
$select_something->prepare ("
SELECT whatever 
FROM table
");
然后执行它们:

$select_something->execute();
$select_something->bind_result($whatever);
执行第一条语句,第二条语句对上面两行都抛出此错误:

警告:mysqli_stmt::execute()[mysqli stmt.execute]:无效的对象或资源mysqli_stmt


注意,语句的名称不同($select\u something和$select\u something\u else),我只是认为不需要重复代码。

注意,mysqli扩展已被替换为,它使用更简单,性能更好。您应该使用它,而不是mysqli。如果需要PDO教程,请尝试“”。即使你切换了,你可能仍然希望找出哪里出了问题,在这种情况下,请继续阅读

该特定错误仅表示您没有在
$select\u something
$select\u something\u other
中处理
mysqli\u stmt
。许多扩展(尤其是DB扩展)中的函数在失败时返回
false
,而不是资源或对象。这可能就是这里发生的事情。通过测试可能失败的函数的返回值,遵循正确的错误处理过程。用于获取MySQLi函数/方法失败原因的说明

您可能会遇到mysqli和MySQL驱动程序的限制:较低的级别,或者在使用结果之前必须对结果进行调用。默认情况下,
mysqli\u stmt::execute
可能会调用
mysql\u use\u result
,这意味着旧结果必须是(在的文档中提到)。正确地应用这些方法可以解决这个问题


请注意,您不需要调用
mysqli::stmt_init()
,它(作为
mysqli_stmt_init
)来支持过程编程。相反,您可以使用。

请注意,mysqli扩展已被替换为,它使用起来更简单,性能也更好。您应该使用它,而不是mysqli。如果需要PDO教程,请尝试“”。即使你切换了,你可能仍然希望找出哪里出了问题,在这种情况下,请继续阅读

该特定错误仅表示您没有在
$select\u something
$select\u something\u other
中处理
mysqli\u stmt
。许多扩展(尤其是DB扩展)中的函数在失败时返回
false
,而不是资源或对象。这可能就是这里发生的事情。通过测试可能失败的函数的返回值,遵循正确的错误处理过程。用于获取MySQLi函数/方法失败原因的说明

您可能会遇到mysqli和MySQL驱动程序的限制:较低的级别,或者在使用结果之前必须对结果进行调用。默认情况下,
mysqli\u stmt::execute
可能会调用
mysql\u use\u result
,这意味着旧结果必须是(在的文档中提到)。正确地应用这些方法可以解决这个问题

请注意,您不需要调用
mysqli::stmt_init()
,它(作为
mysqli_stmt_init
)来支持过程编程。相反,你可以使用。

请尽量简洁。请尽量简洁。