私は、ローカルの Mac MAMP インストールでphpdao2.6を使用しており、別のリモートの Red Hat Linux サーバーでは問題なく使用しています。最近、EC2 amazon ubuntu フレーバーに移行し、LAMP セットアップをインストールしました。
突然、mysql 接続エラーが発生していることがわかりましたが、常にではありません。
[09-Jul-2013 21:09:11 Australia/Sydney] PHP Warning: mysql_real_escape_string(): Access denied for user 'ec2-user'@'localhost' (using password: NO) in /var/www/html/mycobber/class/sql/SqlQuery.class.php on line 40
[09-Jul-2013 21:09:11 Australia/Sydney] PHP Warning: mysql_real_escape_string(): A link to the server could not be established in /var/www/html/mycobber/class/sql/SqlQuery.class.php on line 40
MyObjectMySqlExtDAO.class.php を使用している場合、これらのエラーは MyObjectMySqlExtDAO.class.php の関数でのみ発生します。
$sql .= 'and ca.enabled = ? ';
.....
$sqlQuery = new SqlQuery($sql);
$sqlQuery -> set('Y');
スタイル構文。この構文を ..
$sql .= " and ca.enabled = 'Y' ";
それは正常に動作します。なぜこれが起こっているのか理解できず、入力がサニタイズされていないため、2番目の方法を使用したくありません。
問題は、ある種のphp設定であると思われます。
私が使用しているEC2インスタンスで:
php: 5.3.26
apache: Apache/2.2.24 (Amazon)
私のローカルMAMPセットアップは
php: 5.4.10
apache: Apache/2.2.23 (Unix)
そこに何かアイデアはありますか?