php - mysqli INSERT异常

标签 php insert mysqli row

我有下表:

ID: bigint autoinc
NAME: varchar(255)
DESCRIPTION: text
ENTRYDATE: date

我想在表中插入一行。它执行时没有错误,但没有任何内容被插入到数据库中。

try {
    $query = "INSERT INTO mytable (NAME, DESCRIPTION, ENTRYDATE) VALUES(?,?,?)";
    $stmt = $conn->prepare($query);
    $name= 'something';
    $desc = 'something';
    $curdate = "CURDATE()";
    $stmt->bind_param("sss", $name, $desc, $curdate);
    $stmt->execute();
    $stmt->close();
    $conn->close();
    //redirect to success page
}
catch(Exception $e) {
    print $e;
}

它运行良好并重定向到成功页面,但在表中找不到任何内容。为什么它不起作用?

最佳答案

如何将 $query 中的 DESCTIPTION 替换为 DESCRIPTION

编辑

出于好奇,我创建了一个名为 mytable 的表,并将您的代码复制粘贴到 PHP 脚本中。

除了绑定(bind)参数 CURDATE() 没有正确执行并且 ENTRYDATE 单元格被分配了 0000-00 之外,这里一切正常并且插入了行-00

您确定您正在监视您的脚本应该插入到的同一个数据库和表吗?

使用 error_reporting(E_ALL); 会发生什么?

您是否已验证脚本确实完成了插入?

以下似乎按预期工作:

error_reporting(E_ALL);

try {
    $query = "INSERT INTO mytable (NAME, DESCRIPTION, ENTRYDATE) VALUES (?, ?, CURDATE())";
    $stmt = $conn->prepare($query);
    $name= 'something';
    $desc = 'something';
    $stmt->bind_param("ss", $name, $desc);
    $stmt->execute();

     if ($conn->affected_rows < 1) {
        throw new Exception('Nothing was inserted!');
     }

    $stmt->close();
    $conn->close();
    //redirect to success page
}
catch(Exception $e) {
    print $e->getMessage();
}

关于php - mysqli INSERT异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5179637/

相关文章:

C# - 如果用户在插入记录后刷新页面,则会创建重复记录。我怎样才能防止这种情况发生?

php - 上传后将3张图片存入数据库

php - 在浏览器中获取 json 结果,但在 iOS 模拟器中不行

php - 将 foreach 循环用于 mysqli 查询建议

php - 如何使用 PHP 将 exec() 命令的输出存储在数组中

php - Laravel API 对后续请求的验证/保护 : no login/logout and no "users" table

php - netstat 和 lsof 的执行问题

php - 向数据库发送 0 个值

sql-server-2005 - 更新而不是删除然后插入同一个表有什么好处

php - mysqli 计数如何划分这两个计数并回显结果