2011-01-10 5 views
0

my_sqlデータベースに接続しようとして問題があります。私はPHPを初めて使い慣れているので、これはおそらく非常に単純な問題です。私のindex.phpの上部には、私は次のコードを持っている:php my_sql接続の問題

try 
    { 
     echo 'here 1'; 
     $db=mysql_connect('localhost', 'root', 'password') or die(mysql_error()); 
     echo 'here 2'; 
     if(!$db) 
     { 
     echo 'here 3'; 
     } 
     $db_selected=mysql_select_db("alphaes", $db); 
     echo 'here 4'; 

     if (!$db_selected) { 
     die ('Can\'t use foo : ' . mysql_error()); 
     } 
     echo 'here 5'; 
    } 
    catch (Exception $e) 
    { 
     echo 'Caught exception: ', $e->getMessage(), "\n"; 
    } 

問題がページからのみの出力は「ここ1」であるということです。私がすべてのデータベースコードをコメントアウトすると、ページは正常に読み込まれます。接続コードに問題がありますが、ブラウザにmysql_errorまたは例外が書き込まれているとは限りません。これらはどこかのファイルに記録されますか?誰でもコードの問題を見ることができますか?

ユーザー名とパスワードは正しいです。すべてのヘルプははるかに高く評価されて

マーク

+0

mysqlドライバはそれらをサポートしていないので、例外は発生しませんが、それ以外は奇妙です。私はその愚かなdie()をもっと知的なものに変えることを提案したいと思います。 if(!$ db)は例えば –

+7

のようなものを投げる 'ini_set( 'display_errors'、 'On'); error_reporting(E_ALL); '---これをスクリプトの先頭に入れます – zerkms

+0

@Col。 Shrapnel:私は彼がプラグインされていないmysqlの拡張機能を持っていると確信しています。 – zerkms

答えて

0

おかげ - それは非常にだったことが判明'初心者'エラー - PHPの設定ファイルでmysqlが有効になっていませんでした。

-1

それだけで停止したコードを意味する "ここ1" を出力する場合:私はそれが原因mysql_errorニーズだと思う

$db=mysql_connect('localhost', 'root', 'password') or die(mysql_error());

mysql_connectからの最後の接続を取得すると、接続は失敗します。

ドキュメントから:

MySQL接続。リンク識別子が指定されない場合、mysql_connect()によって最後に開かれたリンクが仮定されます。 このようなリンクが見つからない場合、mysql_connect()が引数なしで呼び出されたかのようにURLを作成しようとします。接続が見つからないか確立されていない場合は、E_WARNINGレベルのエラーが生成されます。

(強調鉱山)

http://php.net/manual/en/function.mysql-error.php

いくつかの文字列を出力してmysql_errorを変更してみてください、それが動作するかどうかを確認。それが動作する場合、エラーはデータベース接続にあります。パスワードなし

+0

nope、それdoesn 〜しない –

-1

試してみてください。ここ$db=mysql_connect('localhost', 'root', '') or die(mysql_error());

2

は、例外処理と連動して、新しいmysqli拡張モジュールを使用して、非常に単純な例です:答えたすべての人に

<?php 

ob_start(); 

try 
{ 
    $db = new mysqli("localhost", "foo_dbo", "pass", "foo_db", 3306); 

    if ($db->connect_errno) 
     throw new exception(sprintf("Could not connect: %s", $db->connect_error)); 

    $sqlCmd = "select * from users order by username"; 
    $result = $db->query($sqlCmd); 

    if(!$result) throw new exception(sprintf("Invalid query : %s", $sqlCmd)); 

    if($db->affected_rows <= 0){ 
     echo "no users found !"; 
    } 
    else{ 
     $users = $result->fetch_all(MYSQLI_ASSOC); 
     foreach($users as $u) echo $u["username"], "<br/>"; 
    } 
    $result->close(); 
} 
catch(exception $ex) 
{ 
    ob_clean(); 
    echo sprintf("zomg borked - %s", $ex->getMessage()); 
} 

if(!$db->connect_errno) $db->close(); 
ob_end_flush(); 
?>