web-dev-qa-db-ja.com

日付と時刻の列でMysqli bind_paramを使用していますか?

PHP mysqli and bind_param?

50
Keith Lyall

他の文字列と同様

$ stmt = $ mysqli-> prepare( 'insert into foo(dt)values(?)'); 
 $ dt = '2009-04-30 10:09:00'; 
 $ stmt-> bind_param( 's'、$ dt); 
 $ stmt-> execute();
80
VolkerK

PHPのタイムスタンプは整数(UNIXエポックからの秒数)です。上記の代替方法は、整数型の日付/時刻パラメーターとMySQL関数FROM_UNIXTIMEおよびUNIX_TIMESTAMP

$stmt = $mysqli->prepare("INSERT INTO FOO (dateColumn) VALUES (FROM_UNIXTIME(?))");
$stmt->bind_param("i", $your_date_parameter);
$stmt->execute();
12
Rob

現在の日付/時刻については、MySQL標準ルーチンを使用できます。それを準備する必要はありません。

$query  = "INSERT INTO tablename ";
$query .= "VALUES(?,?,?,NOW()) ";
$preparedquery = $dbaselink->prepare($query);
$preparedquery->bind_param("iii",$val1,$val2,$val3);
2
Vincent

Date()関数を使用して、これで問題が解決しました。

$stmt = $mysqli->prepare("INSERT INTO FOO (dateColumn) VALUES ?");
// 6/10/2015 10:30:00
$datetime = date("Y-m-d H:i:s", mktime(10, 30, 0, 6, 10, 2015));
$stmt->bind_param("s", $datetime);
$stmt->execute();
1
jcromeros1987

タイムスタンプフィールドにはmySQL関数now()を使用します。

0
Peter

最初にdate()関数を使用して日時を設定します

$date=date("d/m/y");
$time=date("h:i:sa");

他の文字列変数と同様に、準備されたステートメントに渡します。

$stmt = $mysqli->prepare("INSERT INTO FOO (dateColumn, timeColumn) VALUES (?,?)");
$stmt->bind_param("ss", $date , $time);
$stmt->execute();
0
Wijay Sharma