2017-02-12 53 views
1

NOW()的使用我只是有趣,我應該使用NOW()內的查詢或者我應該爲一個數組? 這是我的代碼,它的工作,但不知道這個..如何使用PDO

$STH = $DBH->prepare('INSERT INTO users SET username = :username, password = :password, email = :email, joined = NOW(), usergroup = :usergroup, favourite_genre = :genre'); 
$STH->execute(array(
    ':username' => $username, 
    ':password' => $password, 
    ':email' => $email, 
    ':usergroup' => 0, 
    ':genre' => $_POST['genre'] 
)); 
+0

*「我現在應該()內的查詢中使用或我應該爲一個數組?」 * - 「陣列」,如何和爲什麼? –

+0

'「我應該做一個數組爲'' - 什麼數組你在談論如果此代碼的工作,然後有什麼問題 – David

+0

我只是想知道我應該做的是這樣的:????加入=:joindate然後再定義joindate內部數組 – dovlapsy

回答

1

時間戳是時間戳,沒有進一步的背景下,差別不大什麼產生的時間戳。目前您正在爲數據庫生成該值,您建議在PHP應用程序中生成該值。

兩種方法都成功地生成一個時間戳。

如果數據庫正在使用由其他應用程序,可能來自其他系統的訪問,則取決於你可能要依賴於數據庫生成的時間戳在實際使用中,這樣的值將是內在一致的。雖然即使那樣,它也需要高度的精確度才能起作用。

現在,如果具有不同位置/文化設置的多個系統正在訪問數據庫,那麼將時間戳創建集中在數據庫本身上肯定是一個好主意。

0

不應該查詢是否在這種形式?

$data = array(
     "email" => $email, 
     "password" => $password, 
     "salt"  => $salt, 
     "ingame" => $ingame, 
     "kiosk" => $kiosk, 
); 
$dbh->query("INSERT INTO ?n SET reg = NOW(), ?u","users", $data); 
0

日期時間字段不接受默認值,它們不是時間戳字段。

所以我這樣做:

<?php 

$STH = $DBH->prepare('INSERT INTO users SET username = :username, password = :password, email = :email, joined = :joined, usergroup = :usergroup, favourite_genre = :genre'); 
$STH->execute(array(
    ':username' => $username, 
    ':password' => $password, 
    ':email' => $email, 
    ':joined' => date ("Y-m-d H:i:s", time()); 
    ':usergroup' => 0, 
    ':genre' => $_POST['genre'] 
)); 

?> 

見你我的朋友!