SQL Server 2005 데이터베이스에 varbinary (MAX) 필드가 있습니다. PHP를 사용하여 해당 필드에 이진 데이터 (예 : 이미지)를 삽입하는 방법을 알아 내려고합니다. SQL Server 데이터베이스 연결에 ODBC를 사용하고 있습니다. MySql 데이터베이스와 함께 사용하기 위해 이것을 설명하는 많은 예제를 보았지만 SQL Server와 함께 작동시키지 못했습니다. 감사.PHP를 사용하여 SQL Server에 이진 데이터 삽입
답변
간단한 답은 다음과 같습니다. 수행중인 작업을 중단하십시오.
매우 구체적인 보안 문제가없는 한 데이터베이스에 이진 파일을 저장하지 않으려합니다. 대신 파일 이름을 저장하고 (충돌을 막기 위해 파일의 이름을 바꿀 수 있음) 데이터베이스에 저장하려고합니다. 보안에 문제가 있으면 웹 폴더가 아닌 폴더에 넣고 코드를 사용하여 파일을 검색하고 사용자가 액세스 할 수있는 경우에만 파일을 제공하십시오.
데이터베이스 내부에 이미지 나 파일을 저장하는 것은 파일 공간 낭비, 데이터베이스의 오용, 가장 잘하는 일을시키는 것이 아닙니다. 파일 시스템은 파일을 알고, 데이터베이스는 데이터를 압니다.
function prepareImageDBString($filepath)
{
$out = 'null';
$handle = @fopen($filepath, 'rb');
if ($handle)
{
$content = @fread($handle, filesize($filepath));
$content = bin2hex($content);
@fclose($handle);
$out = "0x".$content;
}
return $out;
}
사용 :
$out = prepareImageDBString('/img/myimg.png');
mssql_query("INSERT INTO MyTable(MyImage) VALUES($out) ");
myimage을이 유형은 이미지
명확한 +1. 이것은 선택되어야합니다. Blob을 사용할 때 많은 경우가 있습니다. 예를 들어 10 억 개의 실제 파일 대신 1 개의 데이터베이스 파일을 백업하는 것이 더 쉽습니다. 단 한 번의 발언 만하면 기능이 끝나지 않습니다. –
나는 그것이 나쁜 습관이다 말할 것이다 SQL 서버 필드, 그것은 얼마나 큰지에 따라 이미지와 방법 귀하의 응용 프로그램이 그것을 사용합니다.
크기가 256K 미만인 파일은 db로 저장하는 것이 더 효율적입니다. 1 MB 이상, 파일 시스템에 저장하는 것이 좋습니다.
- 1. LINQ를 사용하여 SQL Server에 이진 개체 저장
- 2. varbinary 데이터를 SQL Server에 수동으로 삽입
- 3. IDENTITY로 레코드 다시 삽입 SQL Server에 삽입
- 4. JQuery와 PHP를 삽입 데이터
- 5. SQL Server에 대한 SQL 삽입 관련 쿼리?
- 6. PHP를 사용하여 XML 파일에 데이터 삽입 DOM
- 7. FreeTDS ODBC 드라이버를 사용하여 Linux PHP를 SQL Server에 연결
- 8. ColdFusion - SQL Server에 양식 필드 삽입
- 9. vb.net에서 SQL SErver 데이터베이스로 이진 데이터 저장
- 10. VB6을 사용하여 SQL Server에 액세스
- 11. qt를 사용하여 SQL Server에 연결
- 12. ActiveRecord를 사용하여 SQL Server에 연결
- 13. powershell을 사용하여 SQL Server에 연결
- 14. PHP를 사용하여 플래시 파일 삽입
- 15. SQL 쿼리를 사용하여 참깨 데이터베이스에 데이터 삽입
- 16. SQL 테이블에 데이터 삽입
- 17. SQL 데이터베이스에 데이터 삽입
- 18. SQL 테이블에 데이터 삽입
- 19. 오류 : SQL Server에 ASP.NET에서
- 20. SQL Server에 HTML 저장
- 21. ssis 및 sql server 2008을 사용하여 이진 데이터 변환하기
- 22. mysql에 이진 데이터 저장
- 23. PHP를 통해 SQL 데이터 업데이트
- 24. SQL/ASP 데이터 삽입/업데이트
- 25. SQL 데이터 어댑터 삽입 명령
- 26. Python을 사용하여 SQLite 데이터베이스에 이진 파일 삽입
- 27. SQL 테이블에 데이터 세트 삽입
- 28. osql을 사용하여 SQL Server에 연결할 수 없습니다.
- 29. Entity Framework 4를 사용하여 SQL Server에 연결
- 30. Delphi를 사용하여 원격 SQL Server에 직접 연결
약 gzdeflated 텍스트 문자열은 무엇입니까? 이진 압축 된 텍스트 데이터가 데이터베이스에서 집처럼 보입니다. – chiliNUT
그는 해야할지 묻지 않았습니다. 어떻게 할 수 있는지 물었습니다. 당신은 OP의 질문에 대답해야합니다. 그렇다면 꼭해야 할 일로 생각/의견을 덧붙여 야합니다. – Losbear
좋은 조언이긴하지만, Google 사람들이 솔루션을 찾는 사람들에게 도움이됩니다. 모든 이진 데이터가 이미지 또는 파일이 아닙니다. – dmarra