簡體   English   中英

插入數據錯誤代碼 23000 mysql pdo php

[英]inserting data error code 23000 mysql pdo php

我的數據庫中有一張表

我正在嘗試在其中插入一些數據

但我不斷收到 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

看起來你在數據庫中有一個重復的鍵。 我猜的用戶名。

如果您對 userid 有自動增量,則無需在創建時傳遞它。

看看你的代碼吧:

  1. 從會話中獲取用戶
  2. 將此用戶添加到數據庫

因此,如果您多次運行腳本,則會出現 23000 錯誤。

是的,userid 是如何進入會話的?

1062 錯誤代碼表示“重復輸入”

我建議有 23000 錯誤代碼的人嘗試:

print_r($dbObject->errorInfo()) ;

您最有可能自己找到問題,因為有錯誤描述。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM