php - 插入数据错误代码 23000 mysql pdo php

标签 php mysql pdo

我的数据库里有一张表

我想在里面插入一些数据

但我一直收到 pdo 错误代码 23000

我手动尝试了查询并且它有效,所以问题不在于查询

我的代码:

<?
include ('config.php');
$text=$_POST['text'];
if (!isset ($text)) exit();
$query=$db->prepare("INSERT INTO posts (post,userid,votes) VALUES (?,?,0)");
$query->bindValue(1,$text,PDO::PARAM_STR);
$query->bindValue(2,$id,PDO::PARAM_INT);
$re=$query->execute();
if ($re)
echo 'Added';
else die($query->errorcode()." ".$query->errorinfo());
?>

和配置看起来像

<?
session_start();
try{
$db=new PDO ('mysql:host=localhost;dbname=test;charset=utf8','root','');
}
catch (PDOException $error) {
    echo $error->getmessage();
}
$id=$_SESSION['id'];
$username=$_SESSION['username'];
$password=$_SESSION['password'];
?>

最佳答案

你检查过 MySQL 文档了吗?

http://dev.mysql.com/doc/refman/5.0/en/error-messages-server.html#error_er_dup_key

看起来您在数据库中有一个重复的键。我猜的用户 ID。

如果您对 userid 有自动增量,则无需在创建时传递它。

看看你的代码:

  1. 从 session 中获取用户
  2. 将此用户添加到数据库

因此,如果您多次运行脚本,它将给出 23000 错误。

是的,userid 是如何进入 session 的?

关于php - 插入数据错误代码 23000 mysql pdo php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25815706/

相关文章:

php - Ubuntu/Apache2/Forbidden/权限错误

mysql - 为什么sql给出的结果不正确?

php - 有没有办法用 PDO 获取按两列的值分组的关联数组?

php - PHP PDO语句可以接受表名或列名作为参数吗?

php - 在 CSV 导出中输出列标题

php - 将现有 PHP Web 应用程序转换为移动应用程序的最简单方法是什么?

php - 找不到存储库方法

php - 虚拟服务器上小型 Drupal 7 站点的最佳 php.ini 和 my.cnf 设置

java - JPA 实体关系简单示例中出现错误

php - Magento - addFieldToFilter 没有选择正确的产品