В проекте, который я собираюсь завершить, я написал и реализовал решение объектно-реляционного отображения для PHP. Прежде чем сомневающиеся и мечтатели закричат «как на земле?», Расслабьтесь - я не нашел способа заставить позднюю статическую привязку работать - я просто работаю над этим наилучшим способом, каким только могу.
Во всяком случае, в настоящее время я не использую подготовленные операторы для запросов, потому что я не смог придумать способ передать переменное число аргументов в методы bind_params()
или bind_result()
.
Почему вы должны поддерживать переменное количество аргументов, спросите вы? Потому что суперкласс моих моделей (представьте, что мое решение - взломанный PHP ActiveRecord wannabe) - это то место, где определены запросы, и поэтому метод find (), например, не знает, сколько параметров ему нужно связать .
Теперь я уже думал о создании списка аргументов и передаче строки в eval (), но мне это решение не очень нравится - я бы предпочел просто реализовать свои собственные проверки безопасности и передать операторы .
Есть ли у кого-нибудь какие-либо предложения (или истории успеха) о том, как это сделать? Если вы можете помочь мне решить эту первую проблему, возможно, мы сможем решить проблему связывания набора результатов (что, я подозреваю, будет более сложным или, по крайней мере, более ресурсоемким, если для определения структуры таблицы потребуется начальный запрос).