Я недавно обновил этот проект, включив в него интеграцию с композитором, модульное тестирование и улучшенную обработку принимаемых аргументов по ссылке (для этого требуется обновление до php 5.6).
Я создал набор классов, которые расширяют классы mysqli
и mysqli_stmt
по умолчанию, чтобы вы могли просматривать представление потенциальной строки запроса, которая должна предоставить то, что вы ищете:
https://github.com/noahheck/E_mysqli
Это (близкая к) замена для обычного mysqli
объекта, который возвращает пользовательский объект mysqli_stmt
при prepare()
строке запроса. После привязки ваших параметров E_mysqli
позволит вам просмотреть результирующую строку запроса как новое свойство объекта stmt
:
$mysqli = new E_mysqli($dbHost, $dbUser, $dbPass, $dbName);
$query = "INSERT INTO registration SET name = ?, email = ?";
$stmt = $mysqli->prepare($query);
$stmt->bind_param("ss", $_POST['name'], $_POST['email']);
$stmt->execute();
echo $stmt->fullQuery;
приведет к:
INSERT INTO registration SET name = 'John Doe', email = 'john.doe@example.com'
Есть некоторые предостережения с использованием этого расширения (объяснено в README в проекте github), но для устранения проблемных областей вашего приложения или перехода к объектно-ориентированному стилю из процедурного, это должно обеспечить уровень помощи для большинства пользователи.
Как я уже говорил в проекте github, у меня нет практического опыта использования расширения mysqli
, и этот проект был создан по просьбе пользователей его родственного проекта, поэтому любые отзывы, которые можно предоставить от разработчиков, использующих это в производстве, будет очень признателен.
Отказ от ответственности - Как я уже сказал, я сделал это расширение.