Jun 11, 2012

PHPのMySQLライブラリーが改良されたので対応する(その2)


mysql_ から mysqli_ に変更するために、自分が利用している対象関数の仕様を確認します。

mysqli_ は、 オブジェクト指向型 と 手続き型 のインターフェースがありますが
今回は、オブジェクト指向型で統一しようと思います。

======================================================================
mysql_real_escape_string

[API比較]
string mysql_real_escape_string ( string $unescaped_string [, resource $link_identifier = NULL ] )
mysqli::real_escape_string ( string $escapestr )
----------------------------------------------------------------------
[利用例比較](エラー処理は省略)

mysql_real_escape_string($user)
---------------------------------------------
$mysqli->real_escape_string($user)

======================================================================
mysql_query

[API比較]

resource mysql_query ( string $query [, resource $link_identifier = NULL ] )
mysqli::query ( string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )
----------------------------------------------------------------------
[利用例比較](エラー処理は省略)

$link = mysql_connect("localhost", "mysql_user", "mysql_password");
$result = mysql_query($sql_query, $link);
---------------------------------------------
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
$result = $mysqli->query($sql_query);
======================================================================
mysql_error

[API比較]

string mysql_error ([ resource $link_identifier = NULL ] )
string $mysqli->error;
----------------------------------------------------------------------
[利用例比較](エラー処理は省略)

$link = mysql_connect("localhost", "mysql_user", "mysql_password");
echo mysql_errno($link)
---------------------------------------------
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
echo $mysqli->connect_error;
======================================================================
mysql_num_rows

[API比較]

int mysql_num_rows ( resource $result )
int $mysqli_stmt->num_rows;
----------------------------------------------------------------------
[利用例比較](エラー処理は省略)

$result = mysql_query("SELECT * FROM table1", $link);
$num_rows = mysql_num_rows($result);
---------------------------------------------
$result = $mysqli->query($sql_query);
$num_rows = $result->num_rows;

======================================================================
mysql_fetch_assoc

[API比較]

array mysql_fetch_assoc ( resource $result )
array mysqli_result::fetch_assoc ( void )
----------------------------------------------------------------------
[利用例比較](エラー処理は省略)

$result = mysql_query($sql_query);
while ($row = mysql_fetch_assoc($result)) {
}
---------------------------------------------
$result = $mysqli->query($sql_query)
while ($row = $result->fetch_assoc()) {
}
======================================================================
mysql_data_seek

[API比較]

bool mysql_data_seek ( resource $result , int $row_number )
bool mysqli_result::data_seek ( int $offset )

----------------------------------------------------------------------
[利用例比較](エラー処理は省略)

$result = mysql_query('SELECT last_name, first_name FROM friends');
$row = mysql_fetch_assoc($result);
mysql_data_seek($result, $i);
---------------------------------------------
$result = $mysqli->query('SELECT last_name, first_name FROM friends');
$row = $result->fetch_assoc();
$result->data_seek(399);
======================================================================
mysql_free_result

[API比較]

bool mysql_free_result ( resource $result )
void mysqli_result::free_result ( void )
----------------------------------------------------------------------
[利用例比較](エラー処理は省略)

$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
mysql_free_result($result);
---------------------------------------------
$result = $mysqli->query('SELECT last_name, first_name FROM friends');
$result->free_result();

======================================================================
mysql_connect

[API比較]

resource mysql_connect ([ string $server = ini_get("mysql.default_host")
  [, string $username = ini_get("mysql.default_user")
  [, string $password = ini_get("mysql.default_password")
  [, bool $new_link = false [, int $client_flags = 0 ]]]]] )
mysqli::__construct() ([ string $host = ini_get("mysqli.default_host")
  [, string $username = ini_get("mysqli.default_user")
  [, string $passwd = ini_get("mysqli.default_pw")
  [, string $dbname = ""
  [, int $port = ini_get("mysqli.default_port")
  [, string $socket = ini_get("mysqli.default_socket") ]]]]]] )
----------------------------------------------------------------------
[利用例比較](エラー処理は省略)

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
---------------------------------------------
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');

======================================================================
mysql_close

[API比較]

bool mysql_close ([ resource $link_identifier = NULL ] )
bool mysqli::close ( void )
----------------------------------------------------------------------
[利用例比較](エラー処理は省略)

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
mysql_close($link);
---------------------------------------------
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');
$mysqli->close();
======================================================================
mysql_select_db

[API比較]

bool mysql_select_db ( string $database_name [, resource $link_identifier = NULL ] )
bool mysqli::select_db ( string $dbname )

----------------------------------------------------------------------
[利用例比較](エラー処理は省略)

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$db_selected = mysql_select_db('foo', $link);
---------------------------------------------
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");
$mysqli->select_db("world");
======================================================================
mysql_insert_id

[API比較]

int mysql_insert_id ([ resource $link_identifier = NULL ] )
mixed $mysqli->insert_id;
----------------------------------------------------------------------
[利用例比較](エラー処理は省略)

mysql_query("INSERT INTO mytable (product) values ('kossu')");
$id = mysql_insert_id();
---------------------------------------------
$mysqli->query("INSERT INTO mytable (product) values ('kossu')");
$id = $mysqli->insert_id;
======================================================================
mysql_affected_rows

[API比較]

mysql_affected_rows ([ resource $link_identifier = NULL ] )
int $mysqli->affected_rows;

----------------------------------------------------------------------
[利用例比較](エラー処理は省略)

mysql_query('DELETE FROM mytable WHERE id < 10');
printf("Records deleted: %d\n", mysql_affected_rows());
---------------------------------------------
$mysqli->query("DELETE FROM Language WHERE Percentage < 50");
printf("Affected rows (DELETE): %d\n", $mysqli->affected_rows);

======================================================================
mysql_result

[API比較]

string mysql_result ( resource $result , int $row [, mixed $field = 0 ] )
(無し)
----------------------------------------------------------------------
[利用例比較](エラー処理は省略)

$result = mysql_query('SELECT name FROM work.employee');
echo mysql_result($result, 2);
---------------------------------------------
(無し)
======================================================================