私はデータテーブルを扱っており、カスタム WHERE 句を作成しようとしています。次のコードがあります。
$sWhere = "WHERE office=".$varOffice;
if ( isset($_GET['sSearch']) && $_GET['sSearch'] != "" )
{
$sWhere = "WHERE (";
for ( $i=0 ; $i<count($aColumns) ; $i++ )
{
if ( isset($_GET['bSearchable_'.$i]) && $_GET['bSearchable_'.$i] == "true" )
{
$sWhere .= "`".$aColumns[$i]."` LIKE '%".mysql_real_escape_string( $_GET['sSearch'] )."%' OR ";
}
}
$sWhere = substr_replace( $sWhere, "", -3 );
$sWhere .= ') AND office='.$varOffice;
}
デバッグ後、MySQL がエラーをスローしていることを発見しました。エラー 1605。
ここで見つかったものをエコーすることにし$sQuery
ました:
$sQuery = "
SELECT SQL_CALC_FOUND_ROWS `".str_replace(" , ", " ", implode("`, `", $aColumns))."`
FROM $sTable
$sWhere
$sOrder
$sLimit
";
次に、次のように WHERE 句に引用符がないため、エラーが発生したことがわかりました。
SELECT SQL_CALC_FOUND_ROWS `amount_due_owed`, `amount_paid`, `amount_remaining`, `reference_number` FROM accounting WHERE office=Office 1
次のようになります。
WHERE office='Office 1'
私は試してきましたが、それを理解することができませんでした。変数を一重引用符で囲むにはどうすればよいですか?