joungkyun/mysql-extension-wrapper

纯PHP MySQL 扩展包装器

1.0.2 2022-07-25 13:07 UTC

This package is auto-updated.

Last update: 2024-09-12 19:03:27 UTC


README

GitHub license

mysql-wrapper API 支持MySQL扩展API,并设计为与MySQL扩展最佳配合。如果您有PHP7环境并且需要MySQL扩展API,这是一个不错的选择。

许可证

BSD 2条款

需求

  1. 此包装器API需要在PHP 4.1及以上版本的mysqli扩展上运行。
  2. 使用is_resource()检查mysql连接和mysql结果,替换is_myresource() API。例如:
    <?php

    # old code
    $con = mysql_connect();
    if ( ! is_resource($con) ) {
        die ("connect failed\n");
    }

    # wrapper code
    $con = mysql_connect();
    if ( ! is_myresource($con) ) {
        die ("connect filed\n");
    }
    ?>

示例

<?php
# even if loaded mysql extension, well done.
require_once 'mysql-wrapper.php';

$con = @mysql_connect ('localhost', 'user', 'pass');
if ( ! is_myresource ($con) ) {
	trigger_error(sprintf('Connect error: %s', mysql_error()), E_USER_ERROR);
	exit;
}

mysql_select_db('mysql', $con);
mysql_set_charset ('utf8', $con);

$result = mysql_query ('SELECT * FROM user', $con);
if ( ! is_myresource($result) ) {
	trigger_error(sprintf('Query Error: %s', mysql_error()), E_USER_WARNING);
}

$rno = mysql_num_rows($result);

while ( ($row = mysql_fetch_object($result)) ) {
	printf("User: %s, Host: %s\n", $row->user, $row->host);
}

mysql_free_result($result);
mysql_close($con);

?>

Composer

首先,将composer.json配置如下

{
    "require": {
        "joungkyun/mysql-extension-wrapper": "1.0.*"
    }
}

然后,安装mysql-extension-wrapper

[user@host project]$ php composer.phpt install
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
  - Installing joungkyun/mysql-extension-wrapper (1.0.1): Downloading (100%)
Writing lock file
Generating autoload files
[user@host project]$

然后,编写如下代码

<?php
require_once 'vendor/autoload.php';

echo 'mysql_connect is supported ';
if ( function_exists('mysql_connect') )
    echo 'YES';
else
    echo 'NO';

echo "\n";
?>

致谢

JoungKyun.Kim