Php PDO错误在SteamAuth上复制数据
我目前正在使用steam auth,然后将其翻译为将代码集成到MySQL中。 不幸的是,我收到一条消息,通知我该表已经存在。 我想有一个代码,允许我更新数据,如果需要的话,但不幸的是,我不能在谷歌上找到。 这是我在PDO中的代码Php PDO错误在SteamAuth上复制数据,php,Php,我目前正在使用steam auth,然后将其翻译为将代码集成到MySQL中。 不幸的是,我收到一条消息,通知我该表已经存在。 我想有一个代码,允许我更新数据,如果需要的话,但不幸的是,我不能在谷歌上找到。 这是我在PDO中的代码 <?php function newPDO() { $host = 'x'; $db = 'x'; $user = 'x'; $pass = 'x'; $dsn = "mysql:host=$host;dbname
<?php
function newPDO() {
$host = 'x';
$db = 'x';
$user = 'x';
$pass = 'x';
$dsn = "mysql:host=$host;dbname=$db";
$opt = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
$pdo = new PDO($dsn, $user, $pass, $opt);
return $pdo;
}
{
$pdo = newPDO();
$stmt = $pdo->prepare('INSERT INTO players (uid, name, avatar) VALUES (:uid, :name, :avatar)');
$stmt->execute(['uid' => $_SESSION['steam_steamid'], 'name' => $_SESSION['steam_personaname'], 'avatar' => $_SESSION['steam_avatar']]);
if($pdo->lastInsertId()) {
//login successfull
return true;
} else {
//registration failed
return false;
}
}
if(!isset($_SESSION['steamid'])) {
loginbutton("rectangle"); //login button
} else {
include ('steamauth/userInfo.php');
//Protected content
echo $steamprofile['personaname'];
echo '<img src="'.$steamprofile['avatar'].'" title="" alt="" />'; // Display their avatar!
logoutbutton("rectangle");
}
?>
最后,这是php告诉我的错误代码
致命错误:未捕获异常“PDOException”并显示消息“SQLSTATE[23000]:完整性约束冲突:1062 C:\xampp\htdocs\inc\login.php中键“uid”的重复条目“76561197992043760”。php:23堆栈跟踪:#0 C:\xampp\htdocs\inc\login.php(23):PDOStatement->execute(Array)#1 C:\xampp\htdocs\index.php(52):include('C:\xampp\docs…)#2{main}在第23行的C:\xampp\htdocs\inc\login.php中抛出
你能帮我解决这个问题吗 您可以先用SELECT验证是否存在字段 如果不存在,则使用INSERT创建行
否则用update更新记录您的表中已有一行的uid为
76561197992043760
我知道,我想说是否可能pdo overwrite?overwrite=update而不是INSERT您是说要修改现有行吗?如果我想使用update,我的代码会是什么样子?