次のcodeigniter関数は(文字列)パラメータをとり、行の(整数)IDを返します。文字列の値を渡すと正常に動作しますが、整数0が渡された場合、データベースの最初の行のIDが返されます。原則として、user_name
がデータベースに存在する場合にのみuser_id
を返します。 0と呼ばれるuser_nameは存在しないので、falseを返すはずです。 誰かがこのようにふるまう理由と解決方法を伝えることができますか?PHP関数の返り値に関する質問
ありがとうございました。
$user_name = "test"; //works fine, returns id.
$user_name = "0"; //works fine, doesnt return anything
$user_name = 0; //Problem. returns ID of first row.
問題は生成されたSQL文にあります。WHERE()に文字列として渡す必要があります。 – Gerep