5

次のコードではecho1、ステートメントが表示されます。その後、UI に何も表示されません。ユーザー名とパスワードは正しいです。しかし、PHP は MySQL に接続していないようです。die ステートメントも表示されません。何が間違っているのですか。が検出された後mysql_connect、残りのコードは機能しません。

<?php    
echo "echo1==========";
$con = mysql_connect("localhost","root", "xxxx123") or die("Error connecting to database");
echo "+++++++++ echo2";
echo $con;
mysql_close($con);
  ?>          
4

5 に答える 5

4

エラーが発生しているはずです。追加 :

ini_set('display_errors', 1);
error_reporting(E_ALL);

スクリプトの冒頭で

于 2012-10-27T13:24:29.717 に答える
1

出力がないということは、致命的なエラーを意味します。考えられる唯一の致命的なエラーは、「未定義の関数mysql_connect(何かが実際にどこかで混乱していない限り)です。これは、mysqlライブラリがインストールされていないか、php.iniファイルで有効になっていない可能性があることを意味します。

上記のファイルを確認し、そのファイルをオンerror_reportingにします。

于 2012-10-27T13:33:24.423 に答える
0

このようにコードを使用すると、SQLインジェクションに対して脆弱になります。迅速な解決策として、またはPDOまたはMySQLiをより適切に使用するために、 SQLインジェクションを防ぐためにデータベースにデータを挿入するときにmysql_real_escape_stringを使用することを強くお勧めします。

使用する場合はmysql_*、関数に関するPHPマニュアルの章を読むことをお勧めしますmysql_*。関数では、この拡張機能は新しいコードの記述には推奨されないことが指摘されています。代わりに、 MySQLiまたはPDO_MySQL拡張機能のいずれかを使用する必要があると彼らは言います。

mysql_connectまた、奇妙な規則性を確認しました。引数を使用"するmysql_connectと、接続に失敗します。私の場合、テストしたときに、説明したとおりに発生したので、代わりにこれを試してください。

$con = mysql_connect('localhost','username','password');

PHPマニュアルの例に示されているようにに置き換えれ"ば、機能する可能性があります。'

編集済み

反対票を投じる人のために-最初に試してみてください!を使用してサーバーでテストしたところ"、エラーが発生しましたWarning: mysql_connect(): Access denied for user。PHPバージョン5.4.6を使用しています!

SSHを使用してサーバーにログインし、実行します(リストにphp --modules表示されていない場合mysql)。これが致命的なエラーの原因です。

于 2012-10-27T13:28:44.813 に答える
0

Tomcat 7 の場合、php.ini のデフォルト ディレクトリは実際には C:\windows です。したがって、変更 (モジュール、拡張機能などを有効にする) php.ini を C:\windows にコピーする必要があります。次に、phpinfo(); を実行します。PHP 5.x と一緒に Tomcat 7 でも問題なく動作するはずです。私はこの問題を抱えていて、mysql ステートメントを機能させたいときにかなり苦労しました。

[779246] ( Tomcat を使用して php アプリを実行しますか? ) の回答のすべての指示に従った後でも、mysql ステートメントは機能しませんでした (Tomcat 7、PHP 5.2.16、PECL 5.2.5、MySql 5.6 on Windows 7)。そこで、「phpinfo();」について調べ始めました。前の段落で述べたように、慎重に出力し、ソリューションを使用しました。PDO (PHP のプレーン mysql_* メソッドの将来) を使用する場合は、mysql dll 拡張機能と php.ini で PDO 拡張機能を有効にしてください。

于 2014-08-08T12:14:54.717 に答える
0

問題は、ph5-mysql ドライバーがインストールされていないことでした。インストールして動作させました。これで、mysql_connect() 関数が動作します。

于 2012-10-27T17:17:11.743 に答える