cloud_sql/mysql/pdo/src/Votes.php [58:125]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                candidate VARCHAR(6) NOT NULL,
                PRIMARY KEY (vote_id)
            );';

            $this->connection->exec($sql);
        }
    }

    /**
     * Returns a list of the last five votes
     *
     * @return array<mixed>
     */
    public function listVotes(): array
    {
        $sql = 'SELECT candidate, time_cast FROM votes ORDER BY time_cast DESC LIMIT 5';
        $statement = $this->connection->prepare($sql);
        $statement->execute();
        return $statement->fetchAll(PDO::FETCH_ASSOC);
    }

    /**
     * Get the number of votes cast for a given value.
     *
     * @param string $value
     * @return int
     */
    public function getCountByValue(string $value): int
    {
        $sql = 'SELECT COUNT(vote_id) as voteCount FROM votes WHERE candidate = ?';

        $statement = $this->connection->prepare($sql);
        $statement->execute([$value]);

        return (int) $statement->fetch(PDO::FETCH_COLUMN);
    }

    /**
     * Insert a new vote into the database
     *
     * @param string $value The value to vote for.
     * @return bool
     */
    public function insertVote(string $value): bool
    {
        $conn = $this->connection;
        $res = false;

        # [START cloud_sql_mysql_pdo_connection]
        // Use prepared statements to guard against SQL injection.
        $sql = 'INSERT INTO votes (time_cast, candidate) VALUES (NOW(), :voteValue)';

        try {
            $statement = $conn->prepare($sql);
            $statement->bindParam('voteValue', $value);

            $res = $statement->execute();
        } catch (PDOException $e) {
            throw new RuntimeException(
                'Could not insert vote into database. The PDO exception was ' .
                $e->getMessage(),
                $e->getCode(),
                $e
            );
        }
        # [END cloud_sql_mysql_pdo_connection]

        return $res;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



cloud_sql/postgres/pdo/src/Votes.php [58:125]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                candidate VARCHAR(6) NOT NULL,
                PRIMARY KEY (vote_id)
            );';

            $this->connection->exec($sql);
        }
    }

    /**
     * Returns a list of the last five votes
     *
     * @return array<mixed>
     */
    public function listVotes(): array
    {
        $sql = 'SELECT candidate, time_cast FROM votes ORDER BY time_cast DESC LIMIT 5';
        $statement = $this->connection->prepare($sql);
        $statement->execute();
        return $statement->fetchAll(PDO::FETCH_ASSOC);
    }

    /**
     * Get the number of votes cast for a given value.
     *
     * @param string $value
     * @return int
     */
    public function getCountByValue(string $value): int
    {
        $sql = 'SELECT COUNT(vote_id) as voteCount FROM votes WHERE candidate = ?';

        $statement = $this->connection->prepare($sql);
        $statement->execute([$value]);

        return (int) $statement->fetch(PDO::FETCH_COLUMN);
    }

    /**
     * Insert a new vote into the database
     *
     * @param string $value The value to vote for.
     * @return bool
     */
    public function insertVote(string $value): bool
    {
        $conn = $this->connection;
        $res = false;

        # [START cloud_sql_postgres_pdo_connection]
        // Use prepared statements to guard against SQL injection.
        $sql = 'INSERT INTO votes (time_cast, candidate) VALUES (NOW(), :voteValue)';

        try {
            $statement = $conn->prepare($sql);
            $statement->bindParam('voteValue', $value);

            $res = $statement->execute();
        } catch (PDOException $e) {
            throw new RuntimeException(
                'Could not insert vote into database. The PDO exception was ' .
                $e->getMessage(),
                $e->getCode(),
                $e
            );
        }
        # [END cloud_sql_postgres_pdo_connection]

        return $res;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



