mysqli bind_param更新查询不工作

时间:2013-12-14 11:08:43

标签: php mysql mysqli

<?php
include_once 'dbconnect.php';
$flds= "UPDATE OFFICE SET OADD02=? WHERE OFFNO=$OFFNO";
$stmt = $mysqli->prepare($flds);
$stmt->bind_param('s',$OADD02);
$stmt->execute();
$stmt->close();

我执行上述操作并在bind_param失败。我的过程是这样的:

  • 用户进入表单更新信息(信息通过mysqli查询显示);
  • 他们点击提交。

初始化和填充$stmt有效,但是当我到达bind_param时,页面变为空白。以下是网址:http://gccitech.com/iclub/office.php?ONO=4&ftype=m

2 个答案:

答案 0 :(得分:0)

尝试绑定两个参数:

$flds= "UPDATE OFFICE SET OADD02=? WHERE OFFNO=?";
$stmt = $mysqli->prepare($flds);
$stmt->bind_param('ss',$OADD02, $OFFNO);

我推测,$ OFFNO是一个字符串。如果是整数,请使用:

$stmt->bind_param('si',$OADD02, $OFFNO);

答案 1 :(得分:0)

阅读完本文后,我注意到了一些事情。您需要一个文件,但是您没有声明$ mysqli意味着连接字符串可能无效。

还有你做过检查,看看是否有任何错误会出现?尝试使用此代码检查错误,您将更好地了解正在发生的事情

if ($sql = $mysqli->prepare($query)){
            $sql->bind_param("s",$OADD02);
            $sql->execute();
        } else {
            echo "Failed prepare statement" . $this->conn->error . $this->conn->error;
        }

这样您就可以打印出MySQL错误了。完成后,将错误提升,我可以尝试帮助。

此外,您还没有声明$ OFFNO,这意味着查询也无法正确执行。如果你声明$ mysqli和$ OFFNO的连接,并确保使用上面的if语句进行错误检查,你应该能够看到它为什么不起作用。