나는 PHP 스크립트를 가지고 있는데 이것에는 많은 실수가 있다고 생각한다. 연결 및 SQL 주입에 대한 제한된 지식 때문에. 이 스크립트는 PHP-Mysql을 사용하기 때문에 처음에는 아무 문제가 없습니다.
하지만 Interbase로 변경하려고하면 많은 문제가 발생합니다. 실수를 식별하는 데 도움주세요.
이 내 다음 쿼리 :
$sLimit = "";
if (isset($_POST['iDisplayStart']))
{
$sLimit = " FIRST ".$_POST['iDisplayStart']." SKIP ".$_POST['iDisplayLength'];
}
$sOrder ="";
$sOrder = " ORDER BY LINE_NAME ";
$sWhere = "";
if (postVar('sSearch') !="")
{
$sWhere = " WHERE (LINE_NAME LIKE '%".$_POST['sSearch']."%' OR
MODEL_ONLY LIKE '%".$_POST['sSearch']."%' OR ".
" VER_ONLY LIKE '%".$_POST['sSearch']."%' OR ".
" LOT_SIZE LIKE '%".$_POST['sSearch']."%' OR ".
" START_SERIAL LIKE '%".$_POST['sSearch']."%' OR ".
" SERIAL_NO_LOW LIKE '%".$_POST['sSearch']."%' OR ".
" SERIAL_NO_UP LIKE '%".$_POST['sSearch']."%' OR ".
" PROD_NO LIKE '%".$_POST['sSearch']."%' OR ".
" PROD_DATE LIKE '%".$_POST['sSearch']."%') ";
}
$sQuery = "SELECT LINE_NAME, MODEL_ONLY, VER_ONLY, PROD_NO,
LOT_SIZE, START_SERIAL, SERIAL_NO_LOW, SERIAL_NO_UP, PROD_DATE
FROM DOC_TO".$sWhere.$sOrder.$sLimit.";";
$rResult = ibase_query($sQuery) or _doError(_ERROR30 . ' (<small>' . htmlspecialchars($sql) . '</small>): ' . ibase_errmsg());
$sQuery = "SELECT COUNT(*) FROM (SELECT LINE_NAME, MODEL_ONLY, VER_ONLY, PROD_NO,
LOT_SIZE, START_SERIAL, SERIAL_NO_LOW, SERIAL_NO_UP, PROD_DATE
FROM DOC_TO'.$sWhere.$sOrder.$sLimit.')";
$rResultFilterTotal = ibase_query($sQuery) or _doError(_ERROR30 . ' (<small>' . htmlspecialchars($sql) . '</small>): ' . ibase_errmsg());
$aResultFilterTotal = ibase_fetch_assoc($rResultFilterTotal);
$iFilteredTotal = $aResultFilterTotal[0];
노트 : 나는 사전에 대한 concatenation.thanks에 대한 자세한 내용이 필요합니다.
오류 :
Dynamic SQL Error SQL error code = -104 Token unknown - line 3, column 39 '.. ORDER BY LINE_NAME ..'
작동 원리 : 특정 질문을하고 구체적인 답변을 얻습니다. 어떻게 그렇게 작동하지 않습니다 : 당신은 사람들에게 당신의 일을하도록 요청합니다. – zerkms
추가 정보 : SQL 주입 공격에 대해 읽어보십시오. 이 코드는 그들에게 열려 있습니다. – David
여기 어딘가에 질문이 있습니까? 오류가 있습니까? –