質問したいのですが、mysql データベースにはカーソルがありますか?

WBOY
リリース: 2016-06-23 13:55:42
オリジナル
1112 人が閲覧しました

兄弟、PHP ファイルを作成したいのですが、この PHP ファイルに 1 回アクセスして、データベースからレコードを取得し、2 回目にアクセスして、別のレコードを取得します。
カーソルを使用するにはどうすればよいですか? SQL ステートメントの書き方がわかりません。ありがとうございます


ディスカッション (解決策) への返信

これには、MYSQL でカーソルを使用する必要はなく、レコード セットへの項目ごとのアクセスを実装するだけです。 PHP。

を指定するには、limit 句を使用します。

$query="select * from cmsecms_custinfo LIMIT 1"; を使用して、2 回目にも同じレコードを追加します。 * from cmsecms_custinfo LIMIT $ddd,1"; $ddd = $ddd+1; またはそのようなものですか? ありがとうございます


レコードを取得するには $query="select * from cmsecms_custinfo LIMIT 1"; を使用してください。これはまだこのレコードです2 回目は変数を追加しますか? $query="select * from cmsecms_custinfo LIMIT $ddd,1"; $ddd = $ddd+1; ありがとうございます

$offset = 10; // オフセット値

$limit = 1; // 取得するレコードの数 $query="select * from cmsecms_custinfo LIMIT $offset, $limit"

たとえば、11 番目から 15 番目のレコードを取得します。
$query="select * from cmsecms_custinfo LIMIT 10, 5"

はい、変数
を追加する必要があります。この変数はプログラムから独立しています。 URL 経由で渡すことも、セッションに保存することもできます


上の兄弟、私は静的変数を使用しています static $cursor=0;

$query="select id,title,email from cmsecms_custinfo where id>'$cursor' LIMIT 1 ";
$cursor=$cursor+1;
$sql=$empire->query($query);

ただし、PHP ページが更新されるたびに、$cursor は 0 のままです。つまり、最初のplace Record、静的変数またはグローバル変数の使用方法は?セッションを使用する 1 つの解決策は

session();if(! $_SESSION['cursor'])) $_SESSION['cursor'] = 0;$_SESSION['cursor']++;$cursor = $_SESSION['cursor'];$query="select id,title,email from cmsecms_custinfo LIMIT $cursor";
ログイン後にコピー



上の兄弟、静的変数を使用します
static $cursor=0;
$query="select id,title,email from cmsecms_custinfo where id>'$cursor' LIMIT 1" ; $cursor=$cursor+1;
$sql=$empire->query($query);

ただし、PHP ページが更新されるたびに、$cursor は 0 のまま、つまり最初のレコードが取得されます。静的変数、それともグローバル変数? 使用方法は? 。 。 ?


セッションのために、参考のために例を提供します

session_start();if(!issert($_SESSION['cursor'])){    $_SESSION['cursor'] = 0;}else{    $_SESSION['cursor'] ++;}$cursor = $_SESSION['cursor'];$query="select id,title,email from cmsecms_custinfo where LIMIT $cursor, 1";$sql=$empire->query($query);
ログイン後にコピー


手が滑ってしまいました。

次のようになります:

session_start();if(!isset($_SESSION['cursor'])){ // 改了这里。    $_SESSION['cursor'] = 0;}else{    $_SESSION['cursor'] ++;} $cursor = $_SESSION['cursor']; $query="select id,title,email from cmsecms_custinfo where LIMIT $cursor, 1";$sql=$empire->query($query);
ログイン後にコピー


OK、試してみますが、質問があります: 同じ端末がこの PHP を更新し、項目を自動的に削除できる場合、別の端末でも実装できますか?

つまり、このセッションはサーバー上に存在しますか? それともローカルに存在しますか? まず試してみましょう
表示:
PHP 警告: session_start(): open(/tmpsess_usuklqaaeh5j7tmrfh04vv9a54, O_RDWR) が失敗しました: そのようなファイルまたはディレクトリはありません (2) ) D:inetpubCMS7eadminListOneInfo.php の 46 行目
PHP 警告: 不明: open(/tmpsess_usuklqaaeh5j7tmrfh04vv9a54, O_RDWR) 失敗しました: そのようなファイルまたはディレクトリはありません (2) 行 0 の不明
PHP 警告: 不明: セッション データの書き込みに失敗しました ( 0 行目の Unknown で session.save_path の現在の設定が正しいことを確認してください (/tmp)
セッションを使用します これは各端末によって変更されます

すべての端末でこれを適用したい場合は、変数をデータベース、ファイル、共有メモリなどに保存します

表示:
PHP 警告: session_start(): open(/tmpsess_usuklqaaeh5j7tmrfh04vv9a54, O_RDWR) が失敗しました: D:inetpubCMS7eadminListOneInfo.php の 46 行目にそのようなファイルまたはディレクトリ (2) がありません
PHP 警告: 不明: open(/tmpsess_us) uklqaaeh5j7tmrfh04vv9a54、O_RDWR ) 失敗しました: 行 0 の不明にそのようなファイルまたはディレクトリ (2) はありません
PHP 警告: 不明: セッション データ (ファイル) の書き込みに失敗しました。 不明の session.save_path の現在の設定が正しいことを確認してください (/tmp)。 0 行目


あなたは Windows システムで /tmp がないため、解決策は次のとおりです:
1. D:inetpubCMS7 の後に tmp フォルダー、つまり D:inetpubCMS7tmp を作成します
2. PHP の session.save_path を変更します.ini = "/ tmp" を "session.save_path = "D:inetpubCMS7tmp" に変更します
3. サービスを再起動します

PHP.INI をすべて変更し、サービスを再起動しましたが、依然として同じエラーが発生します。これは奇妙なことです。
まずデータベースに変数を保存してみます。ファイル、共有メモリなど、どれが簡単かわかりません

PHP.INI をすべて変更し、サービスを再起動しましたが、まだ残っています同じエラーですが、これは奇妙です
変数をデータベース、ファイル、共有メモリなどに保存しようとします。その中でどれが簡単かわかりません



つまり、サーバーが正しく設定されていない可能性があります。最初にテストしてから、変数をファイルに書き込むことができます。

$file='session.txt';
if(!file_exists($file)){
$cursor = 0;
file_put_contents($file, 0, true);
$cursor = file_get_contents($) file);
$cursor ++;
file_put_contents($file, $cursor, true)

$query="LIMIT $cursor, 1"; Empire->query($query);

ヒーロー、共有メモリの機能を見ると、php が ISAPI モードで実行されている場合にのみ、Windows で正常に動作するかどうかも確認する必要があります。 、?enable -shmop を追加する必要があります。 、 PHP が共有メモリをサポートしているかどうかを確認するにはどうすればよいですか?
そうですね、ファイルを使用する方が問題は少ないです、ありがとう兄弟

ファイルはすべてのユーザーによって共有されるため、セッションを使用することは推奨されません。異なるユーザーがアクセスした場合。たとえば、Aさんが最初に10回訪問し、次にBさんが訪問した場合、11回目から表示されます。

サーバーを設定してセッションを使用します。今のものは保存のアイデアを提供するだけなので、ファイルを使用してプロトタイプを作成して説明することができます。

ファイルを使用することはできません。騙すつもりはありません。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート