php - PDOクエリの句にパラメーターを追加する方法

原文 php mysql pdo where

コードを使用して、クラス($ datimeClause)を定義するMysqlクエリを実行しています。 2番目のパラメーター(:method)を使用してクエリを実行したいのですが、句の構文をまったく変更すると、クエリが実行されません。私はPDOをかなり初めて使用しているので、2番目のパラメーターを照会するために節を再フォーマットする方法を誰かに教えてもらえますか。

これはクエリです

public static function getList( $numRows=1000000, $datimeId=null ) {
    $conn = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD );
    $datimeClause = $datimeId ? "WHERE DatimeId = :datimeId" : "";
    $sql = "SELECT SQL_CALC_FOUND_ROWS * FROM notify $datimeClause";
    $st = $conn->prepare( $sql );
    $st->bindValue( ":numRows", $numRows, PDO::PARAM_INT );
    $st->bindValue( ":datimeId", $datimeId, PDO::PARAM_INT );
    $st->execute();
    $list = array();
    while ( $row = $st->fetch() ) {
      $text = new Text( $row );
      $list[] = $text;
    }


これはそれを呼び出す関数です。

function newAutoText() {
    $results = array();
    $datimeId = ( isset( $_GET['datimeId'] ) && $_GET['datimeId'] ) ? (int)$_GET['datimeId'] : null;
    $results['datime'] = Text::getById( $datimeId );
    $data = Text::getList( 100000, $results['datime'] ? $results['datime']->id : null);
    $results['texts'] = $data['results'];
    $results['totalRows'] = $data['totalRows']; 


    require( TEMPLATE_PATH . "/sms.php" );
}
答え
だから試してみてください:

public static function getList( $numRows=1000000, $datimeId=null, $andClause=null ) {

そしてここ :
$data = Text::getList( 100000, $results['datime'] ? $results['datime']->id : null, 'testMethod');

そしてもちろんここに:

$sql = "SELECT SQL_CALC_FOUND_ROWS * FROM notify $datimeClause";
if ($andClause!=null ) $sql .= " AND method= :method ";
    $st = $conn->prepare( $sql );
    $st->bindValue( ":numRows", $numRows, PDO::PARAM_INT );
    $st->bindValue( ":datimeId", $datimeId, PDO::PARAM_INT );
if ($andClause!=null ) 
    $st->bindValue( ":method", $andClause, PDO::PARAM_STR );
関連記事

php - base64でエクスポートされた公開鍵をPHPで使用できるものに変換するにはどうすればよいですか?

php - チェックボックスを使用してデータテーブルからIDを選択する方法

php - PHP配列へのHTMLドロップダウンのオプション値の取得を簡略化する

php - 非アクティブなプロセスメモリを消去する方法は?

php - mysqli prepareとORDER BYの使用に関する問題

php - Codeception Acceptanceヘルパーで動的にDBダンプを実行する

javascript - GmailのHTMLメールのテーブルのインラインスタイルとPHPMailerでの送信

php - Composer:インストールされた追加の(必要ではない)依存関係

javascript - JavaScriptは参照ページにリダイレクトします

php - Magentoのバンドル製品の数量ボックスを非表示または削除