ホームページ >バックエンド開発 >PHPチュートリアル >PHP でスリープを使用することによって発生する mysql 読み取りエラーのケースと解決策、sleepmysql_PHP チュートリアル
最近、プロジェクトのニーズにより
特定の操作を実行するには、スリープ関数を使用してデータベースから大量のデータを定期的にフェッチする必要があります。
寝るまでの待ち時間は最低1時間
以前にテストを行ったことがある
スリープ機能を使用すると、数時間後に実行された操作を完了することが可能です
しかし、邪悪な問題が発生しました
プログラムでsleepを使用した後、データベースから対応する情報を取得できないことがわかりました
睡眠を削除します
結果は正常です
押し下げられた。 。 。
スリープはライブラリの読み取り動作に影響しますか? ! !
テストの便宜のため
sleep(10)して10秒以内に実行するだけです
結果はデータベースから情報を読み取ることができます
しかし、なぜ sleep() は 1 時間後に情報を読み取れないのでしょうか?
テストの便宜上、sleep ステートメントの前に一度ライブラリを直接読み込み、sleep ステートメントの後に再度ライブラリを読み込みます
例:
処理されない特殊文字がいくつかあるはずですが、addslashes() を使用して変換できます。
それが機能しない場合は、base64_encode() を使用して暗号化し、再度保存します。
使用したら、取り出して、base64_decode() を使用して復号化します。
sql语句这样写select name for 表名 where...
その後读取第0个
または使用できる関数
mysql_fetch_array
例2. mysql_fetch_arrayの使用MYSQL_NUM
mysql_connect("ローカルホスト" , "mysql_user", "mysql_password") or
die("接続できませんでした: " . mysql_error());
mysql_select_db("mydb");
$result = mysql_query("SELECT id, name FROM mytable");
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
printf ("ID: %s 名前: %s", $row[0], $row[1]);
}
mysql_free_result($結果);
?>
例子 3. mysql_fetch_array は MYSQL_ASSOC を使用します
mysql_connect("localhost", "mysql_user", "mysql_password") or
die("接続できませんでした: " . mysql_error());
mysql_select_db("マイデータベース");
$result = mysql_query("SELECT id, name FROM mytable");
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
printf ("ID: %s 名前: %s", $row["id"], $row["name"]);
}
mysql_free_result($result);
?>
例子 4. mysql_fetch_array は MYSQL_BOTH を使用します
mysql_connect("localhost", "mysql_user", "mysql_password") or
die("接続できませんでした: " . mysql_error());
mysql_select_db("myデータベース");
$result = mysql_query("SELECT id, name FROM mytable");
while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {
printf ("ID: %s 名前: %s", ……残り下全文>>