-1

以下にmysqlUPDATEクエリがあります。

$createDate = mktime(0,0,0,10,21,date("Y"));
$selectedDate =  date('d-m-Y', ($createDate));
    $sql = mysql_query("UPDATE Session SET Active = 0 WHERE DATE_FORMAT(SessionDate,'%Y-%m-%d' ) <= '".$selectedDate."'");

mysqliを使用できるように変更したい、以下のコードが正しいかどうかを知りたい、CRONを使用していて、それが機能しているかどうかわからないので、以下のコードが正確に正しいかどうかを知りたい:

$createDate = mktime(0,0,0,10,21,date("Y"));
$selectedDate =  date('d-m-Y', ($createDate));
$sql = "UPDATE Session SET Active = ? WHERE DATE_FORMAT(SessionDate,'%Y-%m-%d' ) <= '".?."'";                                           
                    $update = $mysqli->prepare($sql);
                    $update->bind_param("is", 0, $selectedDate);
                    $update->execute();

上記のコードは正しいですか?2番目かどうかわかりませんか?正しい

4

1 に答える 1

0

プリペアドステートメントのプレースホルダーは引用符で囲まれていません。そのステートメントを次のように減らすことができます。

"UPDATE Session SET Active = ? WHERE DATE_FORMAT(SessionDate,'%Y-%m-%d' ) <= ?"

しかし、あなたがする次の声明は私を心配させます:

CRONを使用していますが、機能しているかどうかはわかりません。

プログラムの機能をテストするためのテストケース(小さなスタンドアロンプ​​ログラム)を常に作成し、テストテーブルまたはテストデータベースに対して実行する必要があります。テストに費やした時間は常に報われます。テストとphpに関する資料はたくさんあります。たとえば、ここでは、phpを使用した単体テストについて説明しています。

于 2012-10-21T23:49:44.470 に答える