Php 提交表单期间非对象上的函数bindParam()出错

Php 提交表单期间非对象上的函数bindParam()出错,php,object,pdo,fatal-error,Php,Object,Pdo,Fatal Error,昨天我遇到了一个让我头疼的问题,当我想用php提交表单时,它向我显示了一个错误致命的错误:对非对象调用成员函数bindParam() 其守则: 这就是配置文件::这意味着prepare由于错误返回了false。设置 $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 1。将SQL查询存储在变量($SQL)中 2.为您的$\u帖子创建变量 3.将SQL代码中的:mu etc替换为?占位符 4.Bind参数需要一个数据

昨天我遇到了一个让我头疼的问题,当我想用php提交表单时,它向我显示了一个错误致命的错误:对非对象调用成员函数bindParam()

其守则:


这就是配置文件::

这意味着
prepare
由于错误返回了
false
。设置

$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

1。将SQL查询存储在变量($SQL)中

2.为您的
$\u帖子创建变量

3.将SQL代码中的:mu etc替换为?占位符

4.Bind参数需要一个数据类型,然后是数据-例如

    $ins = $db->prepare($sql);
    :m = htmlentities($_POST['m1'], ENT_QUOTES, 'UTF-8');
    ...
    :su = htmlentities($_POST['su1'], ENT_QUOTES, 'UTF-8');
    $ins->bind_param('sssssss', :m, :tu, :w, :th, :f, :sa, :su);
    $ins->execute();

请看右边的窗格。注意到同一个错误上有几十个问题?-->你试过哪种答案?你试过哪种确定的答案?不要用try-catch来概括。谁说“保持黑暗”是无用的、僵化的和不安全的?最好以受控的方式捕获异常,以便您可以看到错误消息。但这并不意味着生产必须保持这种状态。虽然我不明白这有什么害处。你可以看到一条错误消息而不需要捕获。使try..catch无用并无故膨胀代码错误不在连接期间,而是在
prepare
中。很可能与列计数/名称不匹配。这是一个非常好的答案。
    $ins = $db->prepare($sql);
    :m = htmlentities($_POST['m1'], ENT_QUOTES, 'UTF-8');
    ...
    :su = htmlentities($_POST['su1'], ENT_QUOTES, 'UTF-8');
    $ins->bind_param('sssssss', :m, :tu, :w, :th, :f, :sa, :su);
    $ins->execute();