2014-02-15 2 views
0

Windows 컴퓨터의 Xamp에서 Mac의 Mamp로 옮겼습니다. 그리고 PHP 버전은 tom 5.4.19를 5.5.3으로 옮겼습니다. 내 Mysql 데이터베이스를 내보내고 가져 왔는데 제대로 작동했습니다. 이전 서버에서 작업하는 것은 더 이상 허용되지 않은 : 나는 Xamp에서 완벽하게 작동 .php 파일을 점심을 먹었다하지만 그들은 하나의 문제로 mysql_connect()가 있다는 사실이 보일 다음가상 서버 변경

Notice: Use of undefined constant “root†- assumed '“rootâ€' in /Applications/MAMP/htdocs/2_Documents/upload.php on line 20 

Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /Applications/MAMP/htdocs/2_Documents/upload.php on line 20 

Warning: mysql_connect(): Access denied for user 'root'@'localhost' (using password: YES) in /Applications/MAMP/htdocs/2_Documents/upload.php on line 20 
Access denied for user 'root'@'localhost' (using password: YES) 

처럼 지금 나에게 오류를 제공합니다. 스크립트 업그레이드를 원활하게 관리하려면 어떻게해야합니까? 모든 코드를 다시 쓰지 않고도?

+0

데이터베이스 연결을위한 암호가 다르거 나 같은지 확인하십시오. 또한 mysqli 또는 PDO를 사용하는 것이 좋습니다. –

+0

mysql 대신 mysqli를 사용합니다 .. – Hardy

+0

PHP 5.5.x 이상 mysql 함수는 더 이상 사용되지 않습니다. 5.3.x로 다운 그레이드하거나 PDO 또는 mysqli를 사용하여 응용 프로그램을 다시 작성해야합니다. – Mir

답변

0

이전에 표시하지 않은 경고를 표시하는 다른 PHP 구성이 있습니다. 대부분 당신은 또한 최신 PHP 버전을 사용할 것입니다.

  • 첫 번째주의 사항은 엄격 모드의 구문 오류에 대한 것이므로 리터럴 문자열 주위를 인용 부호로 잊어 버린 것 같습니다. 그 문자는 일 수도 있고 문자 인코딩 문제를 나타내지 만 제공 한 정보로는 알 수 없습니다.
  • 두 번째 것은 그 자체로 말합니다 : 오래된 mysql 확장은 더 이상 사용되지 않습니다. 새로운 (더 안전한) mysqli 확장 또는 PDO에 코드를 포팅하십시오. "SQL 주입"과 같은 보안 문제를 방지하는 "prepared statements"를 사용하십시오. 예제 또는 훌륭한 PHP 설명서를 Google에 문의하십시오.
  • 연결 오류 : 사용자 인증 정보에 대해 말할 수있는 것이 없습니다 ... 예전 시스템에서 완전히 열려있는 mysql 서버와 mysql 루트 계정을 사용하는 것처럼 보입니다. 너는 그렇게해서는 안된다. 외관상으로는 더 새로운 체계는 좋은 아이디어 인 양상에서 조금 더 닫힌다.

이러한 문제를 해결할 때 출력을 방해하기 때문에 오류 및 경고를 표시하지 않도록 PHP를 다시 구성해야합니다. 대신 프로덕션 사이트에서 phps 로깅 기능을 사용하십시오.