无法更新此查询

时间:2016-01-25 21:15:40

标签: php mysqli

你们可以帮助我吗

$stmt = $conn->prepare("update data set anrede=?, vorname=?, nachname=?, strasse=?, plz=?, ort=?, krankenkasse=?, seit=?, personen=?, telefon=?, termin=?, time=?, vermittler=?, coment=?,feedback=?, Astatus=?, positiv=?, personen_amgaben=?, fr_1=?, fr_2=?, z_fr_2=?, fr_3=?, z_fr_3=?, fr_4=?, z_fr_4=?, fr_5=?, fr_6=? where t_id=?");
$stmt->bind_param('sssssssssssssssssssssssssssi',$anrede, $vorname, $nachname, $strasse, $plz, $ort, $krankenkasse, $seit, $personen, $telefon, $termin, $time, $vermittler, $coment, $feedback, $Astatus, $positiv, $personen_amgaben, $fr_1, $fr_2, $z_fr_2, $fr_3, $z_fr_3, $fr_4, $z_fr_4, $fr_5, $fr_6, $t_id);

我收到此错误--- Fatal error: Call to a member function bind_param() on a non-object in

出了什么问题

1 个答案:

答案 0 :(得分:0)

错误表示 $ stmt 不是对象。当 $ conn-> prepare()失败时,就会发生这种情况。从the documentation开始:

  

mysqli_prepare()会在发生错误时返回语句对象或 FALSE

因此,您应检查返回值是否为 false ,然后检查错误是什么,您可以使用mysqli error方法执行此操作:

  

返回最近可能成功或失败的MySQLi函数调用的最后一条错误消息。

所以你的代码看起来像这样:

stmt = $conn->prepare(" ... ");
if (stmt === false) {
     die($conn->error);
}
$stmt->bind_param( ... );

请注意,在生产模式下,最好不要将数据库错误消息打印到浏览器,而是打印在日志文件中。

从评论中可以看出上面的代码打印出来了:

  

未知专栏' positiv'在'字段列表'

这清楚地表明了该陈述失败的原因。您的表数据显然没有名为 positiv 的列。所以纠正错字(也许它被称为正面?),然后再试一次,修复可能以这种方式报告的任何其他错误。