Ich verwende derzeit PDO, um eine Verbindung zu meiner Datenbank herzustellen, und es funktioniert, aber wenn ein Benutzer anmeldet, möchte ich überprüfen, ob die ID des Benutzers bereits in einer Reihe ist, habe ich bereits getan in dem folgenden Code:PDO Insert funktioniert nicht mit bindParam
<?php
require 'steamauth/steamauth.php';
if(!isset($_SESSION['steamid'])) {
$username = "Unknown";
$avatar = "defaultUser";
$accid = "Unknown";
$credits = "Not Applicable";
$avatarSmall = "smallUser"; //For Dashboard
} else {
include ('steamauth/userInfo.php');
$username = &$steamprofile['personaname'];
$avatar = &$steamprofile['avatarmedium'];
$accid = &$steamprofile['steamid'];
$avatarSmall = &$steamprofile['avatar']; //For Dashboard
$db_user = "USERNAME";
$db_pass = "PASSWORD";
$db_host = "HOST";
$db_name = "DATABASE NAME";
$db = new PDO("mysql:host=".$db_host.";db_name=".db_name, $db_user, $db_pass);
try{
$check = $db->prepare("SELECT userID from userData WHERE userID = :accountID");
$check->bindParam(':accountID', $accid, PDO::PARAM_INT);
$check->execute();
if(!$check){
die("Server Error: 404Check, Please Contact A Member Of Staff If This Error Continues.");
}else{
if($check->rowCount() > 0) {
$creditsQuery = $db->prepare("SELECT userCredits FROM userData WHERE userID = :accountID3");
$creditsQuery->bindParam(":accountID3", $accid, PDO::PARAM_INT);
$creditsQuery->execute();
//Set Credits To Variable From Database Column
$credits = $creditsQuery->fetch(PDO::FETCH_ASSOC);
}else{
$sql = $db->prepare("INSERT INTO userData (userID, userCredits) VALUES (:accountID2, '0')");
$sql->bindParam(':accountID2', $accid, PDO::PARAM_INT);
$sql->execute();
if(!$sql){
die('Server Error: 404Insert, Please Contact A Member Of Staff If This Error Continues.');
}
}
}
}catch(PDOException $e){
die ("Server Error: 404Connection, Please Contact A Member Of Staff If This Error Continues.");
}
}
?>
Obwohl, wenn ich mich anmelden, scheint es nicht die Benutzer-ID oder Credits als 0 zu speichern, und der Tisch (Userdata) leer ist.
Danke,
Matt
Danke, es scheint, dass die if-Anweisung jetzt ausgeführt wird, obwohl, der Code, der getötet wird, haben Sie irgendwelche Ideen, warum die Abfrage fehlschlägt? – Matt142
keine Ahnung. selbst wenn deine sql 100% perfekt/gültig ist, gibt es mehrere Gründe dafür, dass sie fehlschlägt: Ausländische/eindeutige Schlüsselverletzung, db gestorben, Verbindung gestorben, blah blah. Sie müssen überprüfen, warum, z. 'die ($ db-> errorInfo())' –
Ok, so verbindet sich die Datenbank erfolgreich, da der try-Block keine Ausnahme auslöst, obwohl es den Fehler 404check auslöst, wenn ich die Datei unter: [link] (http: //serverlauncherplus.co.uk/skins4accounts) einmal angemeldet. Ich kann mir keinen Grund vorstellen, warum $ res nicht wahr ist. – Matt142