2016-04-19 46 views
0

私は自分のウェブサイトをデータベースに接続しようとしていますが、データベースが選択されていません "というエラーが表示されます。私のコードは次のとおりです。データベースが選択されていませんエラーmysql php

<?php 

    define('DB_NAME', 'test'); 
    define('DB_UESR', '********'); 
    define('DB_PASSWORD', '********'); 
    define('DB_HOST', '********'); 

    $link = mysql_connect(DB_HOST, DB_UESR, DB_PASSWORD); 

    if (!$link) { 
     die('could not connect: ' . mysql_error()); 
    } 

    $db_selected = mysql_select_db(DB_NAME, $link); 

    if (!db_selected) { 
     die('can\'t use name' . DB_NAME . ' : ' . mysql_error()); 
    } 

    echo 'connected successfully '; 

    $value = $_POST['naam']; 

    $sql = "INSERT INTO naam (test) VALUES ('$value')"; 

    if (!mysql_query($sql)) { 
     die('error: ' . mysql_error()); 
    } 

    echo 'uploaded successfully '; 

    ?> 

正確なマッサージサドは、ページ上に表示されている。

connected successfully error: No database selected 

私は、このウェブサイトに新しいです、誰かが私を助けることができると思います。

+0

DBの+名前が使用できませんでしたか? –

+2

[MySQLの使用を中止してください*** ***とMySQLiへの転送](http://stackoverflow.com/questions/1390607/how-could-i-change-this-mysql-to-mysqli) 。 *または* PDO。 [推奨されないものは何ですか?](https://en.wikipedia.org/wiki/Deprecation) – Martin

+0

これを修正する "正しい"方法ではありませんが、$ sql = "INSERT INTO naam(test)VALUES '$ value') "; $ sql = "INSERT INTO dbname.naam(テスト)VALUES( '$ value')"; – user2278120

答えて

2

まず、if (!db_selected)if (!$db_selected)に変更して、本当にうまく選択しているかどうかを確認する必要があります。

また、データベースを選択した後にmysql_error()にチェックを入れたい場合があります。そのデータベースを選択する権限が不十分である可能性があります。

その後、コメントに記載されているSQLインジェクションの問題を確認してください。

+0

OK、最初の問題を修正しましたが、別の問題が発生しました。テーブル 'a1466880_databas.test'が存在しません。これは何を意味するのでしょうか? –

+0

@LucavanStraatenあなたは(実際の)コードを表示していないので、どこが間違っているのかわかりません。あなたが 'INSERT INTO naam(test)VALUES( '$ value')の上に示したクエリは、あなたに' naam'というテーブルがあることを示しています。あなたの選択に従って、データベース名は 'test'です。しかし、あなたが私に示しているエラーは、 'a1466880_databas'というデータベースで' test'というテーブルを使って何かしようとしていることを示しています。 –

関連する問題