元のリンク: http://www.orlion.ga/1140/
職場でのデータベースの操作はすべてカプセル化されているので、使い方をほとんど忘れてしまったので、後でもう一度忘れた場合はこの記事を読んでください。
PHP 5.5.0 以降非推奨になりました
1.mysql_connect()
リーリー$server: サーバー アドレスにはポート番号を含めることができます。PHP ディレクティブ mysql.default_host が定義されていない場合 (デフォルト)、デフォルト値は「localhost:3306」です。 SQL セーフ モードでは、パラメータは無視され、常に「localhost:3306」が使用されます。
$username: ユーザー名。デフォルト値は mysql.default_user によって定義されます。 SQL セーフ モードでは、パラメーターは無視され、サーバー プロセス所有者のユーザー名が常に使用されます。
$password: パスワード。デフォルト値は mysql.default_password によって定義されます。 SQL セーフ モードでは、パラメータは無視され、常に空のパスワードが使用されます。
$new_link: mysql_connect() が同じパラメーターで 2 回目に呼び出された場合、新しい接続は確立されませんが、すでに開かれている接続 ID が返されます。パラメータ new_link
はこの動作を変更し、mysql_connect() が同じパラメータで以前に呼び出された場合でも、mysql_connect() が常に新しい接続を開くようにします。
$client_flags: 次の定数を使用します:
定数 | 説明 |
---|---|
MYSQL_CLIENT_COMPRESS |
圧縮通信プロトコルを使用する |
MYSQL_CLIENT_IGNORE_SPACE |
関数名の後にスペースを許可します |
MYSQL_CLIENT_INTERACTIVE |
(wait_timeout の代わりに) 切断する前にアイドル状態で待機する interactive_timeout 時間を設定できます。 |
MYSQL_CLIENT_SSL |
SSL暗号化を使用します。このフラグは、MySQL クライアント ライブラリがバージョン 4.x 以降の場合にのみ使用できます。 PHP 4 と Windows バージョンの PHP 5 は両方とも 3.23.x にバンドルされています。
|
2、mysql_close()
bool mysql_close ([ resource $link_identifier = NULL ] )
mysql_close() 关闭指定的连接标识所关联的到 MySQL 服务器的非持久连接。如果没有指定 link_identifier
,则关闭上一个打开的连接.通常不需要使用 mysql_close(),因为已打开的非持久连接会在脚本执行完毕后自动关闭。PHP 4 Zend 引擎引进了引用计数系统,可以自动检测到一个资源不再被引用了(和 Java 一样)。这种情况下此资源使用的所有外部资源都会被垃圾回收系统释放。因此,很少需要手工释放内存。
3、mysql_select_db()
bool mysql_select_db ( string $database_name [, resource $ link_identifier ] )
如果没有指定$link_identifier则使用上一个打开的数据库连接,如果没有打开的连接则将无参数调用mysql_connet()取得一个连接并使用。如果没有连接则E_WARNING错误
4、mysql_query()
resource mysql_query ( string $query [, resource $link_identifier = NULL ] )
$query查询字符串不应该以分号结束
$link_identifier如果不指定处理方式与mysql_select_db()相同。
返回值:
mysql_query() 仅对 SELECT,SHOW,DESCRIBE, EXPLAIN 和其他语句 语句返回一个 resource,如果查询出现错误则返回 FALSE
。对于其它类型的 SQL 语句,比如INSERT, UPDATE, DELETE, DROP 之类, mysql_query() 在执行成功时返回 TRUE
,出错时返回 FALSE
。返回的结果资源应该传递给 mysql_fetch_array() 和其他函数来处理结果表,取出返回的数据。假定查询成功,可以调用 mysql_num_rows() 来查看对应于 SELECT 语句返回了多少行,或者调用mysql_affected_rows() 来查看对应于 DELETE,INSERT,REPLACE 或 UPDATE 语句影响到了多少行。如果没有权限访问查询语句中引用的表时,mysql_query() 也会返回 FALSE
。
对于包含二进制数据的查询,你必须使用mysql_real_query()而不是mysql_query(),因为二进制代码数据可能包含“\0”字符,而且,mysql_real_query()比mysql_query()更快,因为它不会在查询字符串上调用strlen()。如果查询成功,函数返回零。如果发生一个错误,函数返回非零
5、mysql_affected_rows()
int mysql_affected_rows ([ resource $link_identifier = NULL ] )
取得最近一次与 link_identifier
关联的 INSERT,UPDATE 或 DELETE 查询所影响的记录行数。
6、mysql_fetch_array()
array mysql_fetch_array ( resource $result [, int $ result_type ] )
将结果以数组方式返回,一次只返回一行,然后指向下一行(用while循环取出)如果没有更多结果返回false。如果结果中有两个或两个以上的列有相同的字段名,最后一列将优先。如果sql中指定了别名则使用别名。PHP手册中指出mysql_fetch_array并不明显比mysql_fetch_row慢。
$result_type:可选:MYSQL_ASSOC(关联数组),MYSQL_NUM(枚举数组) 和 MYSQL_BOTH,默认值MYSQL_BOTH。
// MYSQL_NUM $result = mysql_query("SELECT id, name FROM mytable"); while ($row = mysql_fetch_array($result, MYSQL_NUM)) { printf ("ID: %s Name: %s", $row[0], $row[1]); } // MYSQL_ASSOC $result = mysql_query("SELECT id, name FROM mytable"); while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { printf ("ID: %s Name: %s", $row["id"], $row["name"]); } // MYSQL_BOTH $result = mysql_query("SELECT id, name FROM mytable"); while ($row = mysql_fetch_array($result, MYSQL_BOTH)) { printf ("ID: %s Name: %s", $row[0], $row["name"]); }
7、其他函数:
string mysql_error ([ resource $link_identifier ] )
如果没有指定数据库连接则使用上一个连接,只返回最近一次mysql函数的错误文本。
bool mysql_set_charset ( string $charset [, resource $link_identifier = NULL ] )
设置字符集,数据库连接的选择与mysql_select_db()一样。
string mysql_real_escape_string ( string $unescaped_string [, resource $link_identifier ] )
转义 SQL 语句中使用的字符串中的特殊字符,并考虑到连接的当前字符集(这是与mysql_escape_string()的不同)