私は "test"と呼ばれる次のmysqlテーブルを持っています。一部のSQLクエリはターミナルで動作しますが、Drupal 6のdb_query()関数では動作しません。
今私はそのために、私は次のクエリを使用し、ユーザの年齢を取得したいと思い
、次のようにデータを持って言うことができます。..
SELECT DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(DOB, '%Y') - (DATE_FORMAT(NOW(), '00-%m-%d') < DATE_FORMAT(DOB, '00-%m-%d')) AS age from test where user_name = 'akshaynhegde';
これは動作し、21歳を返します(これは端末でクエリを実行したときです)
しかし、Drupal 6で次のコードを使用すると、何も返されません... !!
global $user;
$uname = $user->name;
$sql = "SELECT DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(DOB, '%Y') - (DATE_FORMAT(NOW(), '00-%m-%d') < DATE_FORMAT(DOB, '00-%m-%d')) AS age from test where user_name = '%s'";
$age = db_result(db_query($sql,$uname));
私は、そのようdb_fetch_array()
を使用するなど、すべての可能性を試してみましたdb_fetch_object()
、別途$result = db_query($sql,$uname)
を実行し、その後db_result()
に$結果を渡された。..
が、何も働きません...!なぜ..????
よく、FYIの他の簡単なクエリは動作します..たとえば、次のように動作します。
$sql = "select DOB from test where user_name = '%s'";
$dob = db_result(db_query($sql,$uname));
+1素晴らしい推測:) – Clive
ニースの回答... Saved My Day ..! – Akki