Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用变量作为输入时,在非对象错误上绑定_param()_Php_Mysqli - Fatal编程技术网

Php 使用变量作为输入时,在非对象错误上绑定_param()

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'");

尝试使用mysqli进行更新,方法是调用如下类函数:

$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。我已经删除了我的评论,并将其作为答案发布在下面。