CakeFest 2024: The Official CakePHP Conference

mysql_errno

(PHP 4, PHP 5)

mysql_errno直近の MySQL 処理からエラーメッセージのエラー番号を返す

警告

この拡張モジュールは PHP 5.5.0 で非推奨になり、PHP 7.0.0 で削除されました。 MySQLi あるいは PDO_MySQL を使うべきです。詳細な情報は MySQL: API の選択 を参照ください。 この関数の代替として、これらが使えます。

説明

mysql_errno(resource $link_identifier = NULL): int

直近の MySQL 関数で発生したエラーの番号を返します。

MySQL データベースバックエンドから返ってくるエラーは、 警告を発生しません。代わりに mysql_errno() を用いて エラー番号を取得してください。この関数が返すのは、直近に実行された MySQL 関数(mysql_error()mysql_errno() は除く)のエラーコードだけであることに 注意しましょう。この関数を利用するなら、別の MySQL 関数をコールする前に 値を調べることを忘れないようにしましょう。

パラメータ

link_identifier

MySQL 接続。指定されない場合、mysql_connect() により直近にオープンされたリンクが指定されたと仮定されます。そのようなリンクがない場合、引数を指定せずに mysql_connect() がコールした時と同様にリンクを確立します。リンクが見付からない、または、確立できない場合、E_WARNING レベルのエラーが生成されます。

戻り値

直近の MySQL 関数からのエラー番号を返します。エラーが発生していない 場合は、0 (ゼロ)を返します。

例1 mysql_errno() の例

<?php
$link
= mysql_connect("localhost", "mysql_user", "mysql_password");

if (!
mysql_select_db("nonexistentdb", $link)) {
echo
mysql_errno($link) . ": " . mysql_error($link). "\n";
}

mysql_select_db("kossu", $link);
if (!
mysql_query("SELECT * FROM nonexistenttable", $link)) {
echo
mysql_errno($link) . ": " . mysql_error($link) . "\n";
}
?>

上の例の出力は、 たとえば以下のようになります。

1049: Unknown database 'nonexistentdb'
1146: Table 'kossu.nonexistenttable' doesn't exist

参考

add a note

User Contributed Notes 3 notes

up
-1
timstamp.co.uk
16 years ago
If you are receiving errors like:
Warning: mysql_close(): 5 is not a valid MySQL-Link resource

Check that you are calling mysql_error() and mysql_errno() BEFORE you call mysql_close().
up
-3
apoio at cyberspace dot org
23 years ago
All mysqld error messages are located into the file /usr/local/share/mysql/english/errmsg.txt and listed in numerical order from 999 to 1175. You can change the output language as well, issuing the '-L spanish' option for example. See the manual for more details.
up
-11
simon at paarlberg dot dk
18 years ago
Function for creating unique md5 keys in a database. If there are duplets, then a new md5-key will be generated. For your use:

function users_md5create($id){
global $mysql_link;

while ($done==0) {
$md5key = md5(time().($id/2).$loop).md5(time().$id.$loop);
$query = "INSERT INTO users_md5create SET md5key='$md5key', fkey='$id', created=UNIX_TIMESTAMP() ";
$mysql_result = mysql_query($query, $mysql_link);
if(mysql_errno($mysql_link)!=1062) $done=1;
$loop++;
}

return($md5key);
}
To Top