1

MySQLでこのselectステートメントを想像してみてください。

SELECT table1.place, table2.person FROM table1, table2

データベースで「place」または「person」が空の場合(NULL、または長さがゼロの空の文字列として誤って入力された場合)、nullPHP配列に取得したら、その変数に挿入します...代わりに、として表示されていstring of length zeroます。

最初の質問は、なぜこれが起こるのかということです。

2番目の質問は、修正として、DBフィールドが長さ0またはnullの文字列である場合に文字列を割り当てることを考えていました-このようにして、問題の所有権を取得しています...

ここでの最良の修正は何ですか?

アップデート

付け加えると、ここでのポイントは、Smartyで使用するためにこれを入手することです。Smartyを使用すると、isset()は長さがゼロの文字列に対して「true」を評価し、それらの変数内のNULLに対してもtrueと評価されるように見えるので、これはもっと賢い問題でしょうか??

4

1 に答える 1

3

あなたが使用することができますNULLIF

SELECT
    NULLIF(table1.place, '') AS place,
    NULLIF(table2.person, '') AS person
FROM table1, table2
于 2012-07-21T18:23:32.887 に答える