Php 使用变量作为输入时,在非对象错误上绑定_param()
尝试使用mysqli进行更新,方法是调用如下类函数:Php 使用变量作为输入时,在非对象错误上绑定_param(),php,mysqli,Php,Mysqli,尝试使用mysqli进行更新,方法是调用如下类函数: $nyVaegt = 10; $navn = 'Ord'; $nyOevelse = new oevelse(); $nyOevelse->opdaterOevelse( $nyVaegt, $navn ); $stmtopdaterOevelseIHistorik = $mysqli->prepare("UPDATE oevelser SET `vaegt12reps`=100 WHERE `navn`='Ord'");
$nyVaegt = 10;
$navn = 'Ord';
$nyOevelse = new oevelse();
$nyOevelse->opdaterOevelse( $nyVaegt, $navn );
$stmtopdaterOevelseIHistorik = $mysqli->prepare("UPDATE oevelser SET `vaegt12reps`=100 WHERE `navn`='Ord'");
这是对应的类函数:
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>";
}
错误是指这一行:
$stmtopdaterOevelseIHistorik->bind_param(
变量转储响应:bool(false)
因此,绑定参数时似乎出现了一些问题
如果我绕过变量,像这样调用:
$nyVaegt = 10;
$navn = 'Ord';
$nyOevelse = new oevelse();
$nyOevelse->opdaterOevelse( $nyVaegt, $navn );
$stmtopdaterOevelseIHistorik = $mysqli->prepare("UPDATE oevelser SET `vaegt12reps`=100 WHERE `navn`='Ord'");
它很好用
尝试了各种类型的“”,“”-变体,但我无法使其工作…-你们这些善良的人有什么建议吗?据我所知,更新不使用值:
- 插入的内容包括:
='?'
中的引号,这是导致以下情况的主要原因:
对非对象调用成员函数bind_param()
将现有线路更改为以下内容:
$stmtopdaterOevelseIHistorik = $mysqli->prepare("UPDATE oevelser SET `vaegt12reps`=? WHERE `navn`=?");
基本调试:您意识到
$stmtopdaterOevelseIHistorik
为空。。后退一步,直到找到应该设置的位置<代码>$mysqli->prepare()。。好吧,那是失败的。“如果发生错误,则返回FALSE”-确定如何调试prepare()中的FALSE返回值。。。从there@Fred-ii--非常感谢,当然我不应该增加价值,现在没有,百万泰铢,效果很好-有时你看不到森林而看不到树木…@ErikLassen,不客气,Erik。我已经删除了我的评论,并将其作为答案发布在下面。