0

このステートメントが私の MySQL データベースに挿入されない理由について誰かが入力したかどうか疑問に思っていました。エラーは表示されず、SQL ステートメントを手動で入力すると、情報が挿入されます。

<?php

$host="mysql16.000webhost.com";
$user_name="a1611480_akaash";
$pwd="*****";
$database_name="a1611480_akaash";
$db=mysql_connect($host, $user_name, $pwd);

$sql = "INSERT INTO mydata VALUES ('dude1', 'dude2', 'dude3', 'dude4', 'dude5')";

mysql_query($sql);

?>
4

4 に答える 4

4

これは、mysql がこの SQL ステートメントに使用するデータベースを認識していないためです。を含めますmysql_select_db

mysql_select_db($database_name);

PHP で任意のタイプのエラー (致命的エラーを除く) を取得するには、コードを try ブロックで囲みます。

try{
    // db code
}catch(Exception $e){
    // something is wrong
    echo "Oh God! I got this ". $e->getMessage();
}
于 2012-11-11T19:55:14.337 に答える
2

エラーを表示するには、次のようにします。

mysql_query($sql) or die("Error:".mysql_error());

そして、あなたのクエリから、1つの列があり、複数の値を追加したいと仮定しています。したがって、これはおそらく次の形式です。

$sql = "INSERT INTO mydata VALUES 
        ('dude1'), ('dude2'), ('dude3'), ('dude4'), ('dude5);";
于 2012-11-11T19:53:10.657 に答える
0

これは、列名について言及していないためです - http://www.w3schools.com/php/php_mysql_insert.aspを参照してください また、データベースを選択するのを忘れていました - mysql_select_db("my_db");

したがって、クエリは "INSERT INTO mydata (column1, column2, column3, column4, column5) VALUES ('dude1', 'dude2', 'dude3', 'dude4', 'dude5')"; のようなものにする必要があります。

編集: もちろん、コーリーは正しいです。それは私が思うより良い練習です-私はいつもそれをします:)

于 2012-11-11T19:54:50.110 に答える
0

リモート ホストに接続しています。接続する権利がありますか? このコードはどこで実行されますか?

の結果を出力mysql_error()すると便利です!

于 2012-11-11T19:55:11.440 に答える