Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /**
- *
- * @param string $connection_id
- *
- * @return PDO
- */
- function connection($connection_id) {
- $host = $_SERVER['SABENTIS_DB_HOST'];
- $database = $_SERVER['SABENTIS_DB_DATABASE'];
- $username = $_SERVER['SABENTIS_DB_LOGIN'];
- $password = $_SERVER['SABENTIS_DB_PASSWORD'];
- static $connections = [];
- if (!isset($connections[$connection_id])) {
- $pdo_options = [];
- $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
- $pdo_options[PDO::SQLSRV_ATTR_ENCODING] = PDO::SQLSRV_ENCODING_UTF8;
- $cnn = new \PDO("sqlsrv:server=$host;Database=$database", $username, $password, $pdo_options);
- $cnn->setAttribute(PDO::SQLSRV_ATTR_ENCODING, PDO::SQLSRV_ENCODING_UTF8);
- $connections[$connection_id] = $cnn;
- }
- return $connections[$connection_id];
- }
- /**
- * Summary of prepare
- *
- * @param mixed $connection
- * @param mixed $query
- * @return PDOStatement
- */
- function prepare($connection, $query, $buffered, $emulate_prepares) {
- $pdo_options = array();
- if ($emulate_prepares) {
- $pdo_options[PDO::ATTR_EMULATE_PREPARES] = TRUE;
- }
- $pdo_options[PDO::SQLSRV_ATTR_DIRECT_QUERY] = TRUE;
- $pdo_options[PDO::SQLSRV_ATTR_ENCODING] = PDO::SQLSRV_ENCODING_UTF8;
- if ($buffered) {
- $pdo_options[PDO::ATTR_CURSOR] = PDO::CURSOR_SCROLL;
- $pdo_options[PDO::SQLSRV_ATTR_CURSOR_SCROLL_TYPE] = PDO::SQLSRV_CURSOR_BUFFERED;
- }
- return $connection->prepare($query, $pdo_options);
- }
- /**
- * Summary of execute
- *
- * @param PDO $connection
- * @param string $query
- *
- * @param PDOStatement;
- */
- function execute($connection,
- $query,
- array $args = [],
- $buffered = TRUE,
- $emulate_prepares = TRUE) {
- $st = prepare($connection, $query, $buffered, $emulate_prepares);
- $st->execute($args);
- return $st;
- }
- //*******************************************************
- // TEST BEGIN
- //*******************************************************
- $connection = connection('default');
- // Drop
- try {
- execute($connection, 'DROP TABLE TEST');
- }
- catch(\Exception $e) {}
- // Recreate
- execute($connection, "CREATE TABLE TEST([id] [int] IDENTITY(1,1) NOT NULL, [name] nvarchar(max))");
- $prefix = '가각';
- $name = '가각ácasa';
- $name2 = '가각sample2';
- execute($connection, "INSERT INTO TEST(name) VALUES(:p0)", ['p0' => $name], TRUE, FALSE);
- execute($connection, "INSERT INTO TEST(name) VALUES(:p0)", ['p0' => $name2], TRUE, TRUE);
- $statement = execute($connection, "SELECT * FROM TEST WHERE NAME LIKE :p0", ['p0' => "$prefix%"]);
- foreach ($statement as $row) {
- print '<br/>' . 'FOUND: ' . $row['name'];
- }
- $statement = execute($connection, "SELECT * FROM TEST WHERE NAME LIKE :p0", ['p0' => "$prefix%"], FALSE, FALSE);
- foreach ($statement as $row) {
- print '<br/>' . 'FOUND: ' . $row['name'];
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement