目次
に返信議論(解決策)
ホームページ バックエンド開発 PHPチュートリアル [アドバイスを求める] 5.2 ではセッション データベース エラーが発生するのに、5.5 では正常であるのはなぜですか?

[アドバイスを求める] 5.2 ではセッション データベース エラーが発生するのに、5.5 では正常であるのはなぜですか?

Jun 23, 2016 pm 01:21 PM








ini 設定ファイルはすべてデフォルトです (そのはずです。変更した覚えはありません)
助けてください、わかりません


に返信議論(解決策)

エラーメッセージに示されたファイルとエラー行をよく見てください

エラーメッセージに示されたファイルとエラー行をよく見てください




リミッター これは理解できません
それCookie ヘッダーが送信されたようです (クライアントがサーバーに送信するか、その逆かは不明です)

すべてのエコーを削除しました。エラー メッセージはありませんが、データはデータベースに保存されません

session_start(); 前に出力がない場合は、echo... 行をコメントアウトして確認してください。

session_start(); その前に出力がないことはありません。echo... 行をコメントアウトして確認してください。


エコーはコメントされていますが、プロンプトはありません。データベースにデータがありません。これは、操作が失敗し、エラー プロンプトが表示されないことを意味します。

誰も解決できませんか?コード (スクリーンショットはありません!)

インポートされたファイル userSession.php

/**
* PhpStorm によって作成されました。
* ユーザー: Admin_BIN
* 日付: 2015/12/2
* 時間: 14:03
 */
function userSessionBegin(){
echo "
Begin
"
}
function userSessionEnd ( ){
echo "
End
";
}
/**
* 読み取り操作
* 実行タイミング: セッション機構がオープンされたときに実行
* 作業: 現在のセッションデータ領域から内容を読み取ります
* @param $sess_id string
* @return string
**/
function userSessionRead($sess_id){
echo "
Read< br />";
//データベースサーバー接続を初期化します
$link=mysqli_connect("localhost","root","root","matchsys");
mysqli_query($link,"set names utf8");
/ /Query
$sql="select session_content from `session` where session_id='$sess_id'";
$result=mysqli_query($link,$sql);
if($row=mysqli_fetch_assoc($result)); $row["session_content"];
}else{
//見つからない場合は空の文字列を返します
using use using using using using through using ‐ ‐ ‐ return ‐ $row["session_content"] ){
echo ";
Write
";
//データベースサーバー接続を初期化します
$link=mysqli_connect("localhost","root","root","matchsys");
mysqli_query($link, "set names utf8");
//$sql="`sess_id','$sess_content') に置き換えます。
//$sql="`session` 値に挿入します(' $sess_id','$sess_content') 重複キー更新 session_content='$sess_content',last_time=unix_timestamp()";
return mysqli_query($link,$sql);
}
/*
* 削除操作
* 実行タイミング: session_destory() はセッション破棄中に呼び出されます (){
echo "
Delete
"
//データベースサーバー接続を初期化します
$link=mysqli_connect("localhost","root") ,"root","matchsys");
mysqli_query($link,"set names utf8");
//削除
$sql="where session_id='$sess_id'"
return mysqli_query( $link,$sql);
}
function userSessionGC(){
echo "
GC
";
//Set
session_set_save_handler("userSessionBegin","userSessionEnd"," userSessionRead",
"userSessionWrite","userSessionDe lete ","userSessionGC");

メインファイル session_3.php

/**
* 書き込み操作
* 実行タイミング: スクリプト サイクルの終わり、PHP が終了するとき
* 作業: 現在のスクリプトによって処理されたセッション データをデータベースに永続化します。
* @param $sess_id string
* @param $sess_content string シリアル化されたセッションコンテンツ文字列
* @return bool
**/
require "./userSession.php";
$_SESSION["class_name"]="PHP";

データベース SQL
データベース matchSys charset utf8 を作成します。 ;
matchSys を使用;
テーブル `session` を作成します (
session_id varchar(40) not null デフォルト ''、
session_content text、
last_time int not null デフォルト 0、
主キー (session_id)
)charset=utf8 Engine=myisam ;

ありがとうございます! ! !

データベース選択を追加しようとしたのですが、これは同じです


列数が行の値数と一致しません。 1
不一致の値の数は 1 にランク付けされます

$sql="replace into `sess`values('$sess_id','$sess_content')"
テーブルには 3 つの列がありますが、挿入されたのは 2 つの列だけです

$time = time ();
$sql="replace into `sess_id','$sess_content', $time)";



列数が行 1 の値数と一致しません

列数が一致しません。値の数は 1 にランク付けされます

$sql="replace into `sess`values('$sess_id','$sess_content')";

テーブルには 3 つの列がありますが、挿入したのは 2 つの列だけです

$time = time();
$sql="replace into `sess_id','$sess_content', $time)";

そのエラー メッセージはこれとは関係ありません。デフォルトを追加した場合でも、挿入しました。 2 つの値、3 番目の値はデフォルトで挿入されます

3 番目の値は指定されておらず、自動的にデフォルト値 0 になります


列数が値の数と一致しません行 1 このエラーを報告してください。

どうしても表示されない場合は、仕方ありません


テーブルのデータ列が指定された値と一致しません。このエラーは非常によく発生します。デフォルトを指定するか、値を指定してください。自分を騙さないでください!
テーブルには session_id、session_content、last_time の 3 つの列があります。
挿入コマンドは $sql="replace into `sess_id','$sess_content')" です

どれを指定すべきだと思いますか?デフォルト?

デフォルトを指定するだけですが、デフォルト以外のフィールドのリストが必要です

または値を指定するだけですが、指定しませんでした

欠けているのは、最後の列である last_time です。つまり、 giveまたは、後でこの値を入力したときに、関数 unix_timestamp()、

が与えられましたが、その値は確かに 0 だったので、それを削除しました。問題は解決されましたが、もう 1 つ問題が発生すると、問題はさらに複雑になります

エコー コメントの後にプロンプ​​トが表示されません。これは、操作が成功せず、エラーがないことを示します。お願いします


挿入されてないって言ってませんでしたか?
そこで、コードを投稿するようにお願いしました

、すべて挿入されていますが、他に何が問題になるでしょうか?

前に 5.2 は機能しないと言いましたが、5.5 は機能します。私が知りたいのは、なぜ 5.2 が機能しないのかということです

userSessionWrite の
return mysqli_query($link,$sql) を
mysqli_query に変更します。 ($link,$ sql) または die(mysqli_error($link));
おわかりでしょう
私が言ったことはすべて実際のテストであり、単なる話ではありません

php 5.4 は列数が行 1 の値数と一致しません

これがエラーです
警告: session_start() [function.session-start]: セッション キャッシュ リミッターを送信できません - ヘッダーはすでに送信されています (出力は D:projectmyCodemystatephpczbkwork2015.05core で開始されました)

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPのカール:REST APIでPHPカール拡張機能を使用する方法 PHPのカール:REST APIでPHPカール拡張機能を使用する方法 Mar 14, 2025 am 11:42 AM

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Codecanyonで12の最高のPHPチャットスクリプト Codecanyonで12の最高のPHPチャットスクリプト Mar 13, 2025 pm 12:08 PM

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

PHPにおける後期静的結合の概念を説明します。 PHPにおける後期静的結合の概念を説明します。 Mar 21, 2025 pm 01:33 PM

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

フレームワークセキュリティ機能:脆弱性から保護します。 フレームワークセキュリティ機能:脆弱性から保護します。 Mar 28, 2025 pm 05:11 PM

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。

フレームワークのカスタマイズ/拡張:カスタム機能を追加する方法。 フレームワークのカスタマイズ/拡張:カスタム機能を追加する方法。 Mar 28, 2025 pm 05:12 PM

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

PHPのCurlライブラリを使用してJSONデータを含むPOSTリクエストを送信する方法は? PHPのCurlライブラリを使用してJSONデータを含むPOSTリクエストを送信する方法は? Apr 01, 2025 pm 03:12 PM

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。

See all articles