在我的数据库中添加多个值(PDO)

时间:2016-05-06 20:39:39

标签: php html mysql database pdo

我的代码出了问题。 我想在我的数据库中添加更多: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添加到我的数据库中。

1 个答案:

答案 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();
}

More info on bindParam from the docs