我的代码出了问题。
我想在我的数据库中添加更多:SteamID
。
目前,每次进入我的网站时,此功能/ PDO都会运行。 工作代码:
/*Check possible existing data*/
$odb->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$SQLCheckLoginQuery = $odb -> prepare("SELECT COUNT(*) FROM `users` WHERE `steamid` = :SteamID");
$SQLCheckLoginQuery -> execute(array(':SteamID' => $steamid));
// $SQLCheckLoginQuery -> execute(array(':avatar' => $avatarid));
$countUsers = $SQLCheckLoginQuery -> fetchColumn(0);
if($countUsers <= 0){
$SQLInsertQuery = $odb -> prepare("INSERT INTO `users` (steamid) VALUES (:SteamID)");
$SQLInsertQuery -> execute(array(':SteamID' => $steamid));
这是我想要添加到我的数据库中的内容。
**// I want this stuff to be updated every time it runs this section**
$SQLInsertQuery -> execute(array(':avatar' => $avatarid));
$SQLCheckLoginQuery -> execute(array(':steamName' => $steamname));
}
?>
问题是它不允许我将:avatar and :steamName
添加到我的数据库中。
答案 0 :(得分:0)
在调用execute
之前,您需要将两个参数绑定到查询中。
/*Check possible existing data*/
$odb->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$SQLCheckLoginQuery = $odb -> prepare("SELECT COUNT(*) FROM `users` WHERE `steamid` = :SteamID AND avatar = :avatar");
$SQLCheckLoginQuery -> bindParam(':SteamID', $steamid);
$SQLCheckLoginQuery -> bindParam(':avatar', $avatarid);
$SQLCheckLoginQuery -> execute();
$countUsers = $SQLCheckLoginQuery -> fetchColumn(0);
if($countUsers <= 0){
$SQLInsertQuery = $odb -> prepare("INSERT INTO `users` (steamid, avatar) VALUES (:SteamID, :avatar)");
$SQLInsertQuery -> bindParam(':SteamID',$steamid);
$SQLInsertQuery -> bindParam(':avatar',$avatarid);
$SQLInsertQuery -> execute();
}