【发布时间】:2014-10-13 19:03:03
【问题描述】:
尝试使用 mysqli 进行更新,方法是调用这样的类函数:
$nyVaegt = 10;
$navn = 'Ord';
$nyOevelse = new oevelse();
$nyOevelse->opdaterOevelse( $nyVaegt, $navn );
这是对应的类函数:
public function opdaterOevelse (
$nyVaegt,
$navn)
{
$this->nyVaegt = $nyVaegt;
$this->navn = $navn;
global $mysqli;
$stmtopdaterOevelseIHistorik = $mysqli->prepare("UPDATE oevelser SET `vaegt12reps`=? WHERE `navn`='?' VALUES (?, ?)");
var_dump($stmtopdaterOevelseIHistorik);
$stmtopdaterOevelseIHistorik->bind_param(
"ds",
$nyVaegt,
$navn);
$stmtopdaterOevelseIHistorik->execute();
if ( $stmtopdaterOevelseIHistorik )
echo "Query success!<br>";
else
echo "Query failed!<br>";
}
如果我这样运行它,它会说:
Call to a member function bind_param() on a non-object
错误是指这一行:
$stmtopdaterOevelseIHistorik->bind_param(
var_dump 响应:bool(false)
看来,绑定参数时出了点问题。
如果我绕过变量并像这样调用:
$stmtopdaterOevelseIHistorik = $mysqli->prepare("UPDATE oevelser SET `vaegt12reps`=100 WHERE `navn`='Ord'");
效果很好……
尝试了各种''、""-变体,但我无法让它发挥作用...... - 你们这些好人有什么建议......?
【问题讨论】:
-
基本调试:您意识到
$stmtopdaterOevelseIHistorik为空.. 退后一步,直到找到应该设置它的位置。$mysqli->prepare().. 好吧,那失败了。 Let's look up the docs。 “如果发生错误,则返回 FALSE” - 好的,我如何从 prepare() 调试错误的返回值...从那里开始 -
@Fred-ii- - 非常感谢,当然我不应该添加价值,现在可以正常工作,谢谢一百万 - 有时你看不到森林的树木......
-
@ErikLassen 不客气,Erik。我已经删除了我的 cmets 并将其作为答案发布在下面。