ホームページ >バックエンド開発 >PHPチュートリアル >TPバインド変数の数がトークンの数と一致しません

TPバインド変数の数がトークンの数と一致しません

WBOY
WBOYオリジナル
2016-10-11 14:23:111590ブラウズ

  • PHPバージョン: PHP 5.4.16

  • ThinkPHP バージョン: 3.2.3

コードに直接移動します:

リーリー

$sql = $ReportLost->fetchSql(true)->add($data);

リーリー

次回の実行$result = $ReportLost->add($data);はエラーを報告します:

リーリー

ただし、$sql

はmysqlで直接実行されます。 リーリー

を挿入することができます。

データテーブル構造

リーリー

実際、テーブルには $data よりも多くのフィールドがありますが、$data 内の未定義のフィールドは NULL になる可能性があります。

これは thinkphp の制限ですか?それともphpの制限なのでしょうか?解決策はありますか? まず、mysql で必要なすべてのフィールドを $data で定義する必要がありますか?

返信内容:

  • PHPバージョン: PHP 5.4.16

  • ThinkPHP バージョン: 3.2.3

コードに直接移動します:

リーリー

$sql = $ReportLost->fetchSql(true)->add($data);

リーリー

次回の実行$result = $ReportLost->add($data);はエラーを報告します:

リーリー

ただし、$sql

はmysqlで直接実行されます。 リーリー

を挿入することができます。

データテーブル構造

リーリー

実際、テーブルには $data よりも多くのフィールドがありますが、$data 内の未定義のフィールドは NULL になる可能性があります。

これは thinkphp の制限ですか?それともphpの制限なのでしょうか?解決策はありますか? まず、mysql で必要なすべてのフィールドを $data で定義する必要がありますか?

この問題は非常に奇妙です。MySQL のバージョンを教えてください。それとも他に隠れた問題があるのでしょうか?

より詳細なランタイム/ログレポートを提供しますか?

TP3.2 バージョンのモデルsave()メソッドはすでにフィールドの自動フィルタリングをサポートしているため、TP の制限にはならず、保存する前にすべてのフィールドを定義する必要はありません。少なくとも、私は例外なくプロジェクト内で直接 save() メソッドを使用します。

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