은 첫 번째 질문 : 보인다 우리가 문제를 가지고있다 PDO에 mySQLi에서 코드를 마이그레이션 한 후PDO는
가 내 문제가 PDO가 추가되어것을 요청하는 시간 독서 년 후 MySQL의 쿼리에 아포스트로피를 추가 쿼리에 아포스트로피.
$sort = $_GET['sort']; << table column name (mySQL VARCHAR only columns)
....
$query = 'SELECT * FROM table WHERE xxx > 0';
$query .= ' ORDER BY :sort ASC ;';
$qry_result= $db->prepare($query);
$qry_result->execute(array(':sort'=>$sort));
mysqli 버전이 순조롭게하지만 지금은 (MySQL의 로그 파일)을 조회 다음과 같습니다 :
PHP 코드를 그런 식으로가는
SELECT * FROM table where xxx > 0 ORDER BY 'SORT_VAR_VALUE' ASC;
^2 problems^
그래서 테이블 정렬 순서로 정렬되지 않습니다 (mySQL 관점에서) 잘못된 것입니다.
phpinfo()는 "magic"이나 "quotes"btw에서 검색 한 결과가 없습니다.
어떤 아이디어 ??
수 없다 ... 그것은 mySQL에 대한 것이었다 .. 감사합니다 @BrokenBinary 및 다른 사람 –
하나 더 자세하게, 정렬 필드는 대부분 varchars이지만 나는 빈약 한 숫자로 정렬해야합니다 (누군가 varchars에 숫자를 넣으려는 잘못된 결정을 내렸습니다.). 그래서 정렬 문자열은 'FIELD + 0'과 같아서 적절한 정렬을 얻습니다. 이 방법은 이와 같은 문자열로 작동합니다. '+ 기호는 무엇입니까? –
'+ '기호를 허용하려면 위생 표준 정규 표현식을''/^[a-zA-Z0-9 _ +] /''('+' 끝). 내 대답에있는 다른 모든 것은'+'기호로 잘 작동해야합니다. 또는'$ sort'을 삭제 한 후에'+ 0'을 추가하면됩니다. 어느 쪽이든 작동합니다. – BrokenBinary