【问题标题】:PHP binding paramenters with default values [closed]具有默认值的 PHP 绑定参数 [关闭]
【发布时间】:2020-07-18 16:16:22
【问题描述】:

我正在尝试将此 sql 查询转换为准备好的语句:

$query = "INSERT INTO contact VALUES (default,'".$firstName."', '".$lastName."');";

其中 default 是一个自动递增的 id。

这是我目前准备好的陈述:

if (!($stmt = $mysqli->prepare("INSERT INTO contact (id, firstName, lastName) VALUES (DEFAULT, ?, ?)"))) {
            echo "Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error;
        }
        if (!$stmt->bind_param("s", $_POST['firstName'], $_POST['lastName'])) {
            echo "Binding parameters failed: (" . $stmt->errno . ") " . $stmt->error;
        }
        if (!$stmt->execute()) {
            echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error;
        }

当我进入我的 PHP 表单时,没有执行任何 echo 语句,所以我假设有“没有”错误。但是当我检查我的数据库时,没有新的插入;插入方法不起作用。什么都没有添加。我想知道我的 bind_param 函数是否有错误?

【问题讨论】:

  • 您的意思是将要绑定的数据类型指定为"s",然后绑定2个值。也许"ss"
  • 成功了!非常感谢!

标签: php mysql mysqli prepared-statement


【解决方案1】:

将要绑定的数据类型指定为“s”,然后绑定 2 个值。我将“s”更改为“ss”。感谢 Nigel Ren 的回答。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-30
    • 1970-01-01
    • 2014-03-09
    • 2017-03-09
    • 1970-01-01
    • 2013-02-14
    相关资源
    最近更新 更多