mysql_query INSERT(PHP 5.3)がテーブルに追加されない問題

tristanojbacon

情報を記載したメールを送信する求人応募フォームがあります。また、フォームの値(以下の上部にあるhandler.phpに値がインポートされます)をサーバー上のデータベースのテーブルに挿入する必要があります。 。

ただし、値が挿入されていないため、理由がわかりません。

私は実際にこのスクリプトを別のドメインとサーバーにあるクライアントの古いバージョンのWebサイトから取得しましたが、それでも完全に機能しているため、ここで機能しない理由がわかりません。私が変更したのはデータベースの詳細だけです。ある時点で、この問題はmysql_connectなどがmysqliと同等のものを優先して非推奨になっているためかもしれないと思いましたが、クライアントのサーバーはまだPHP 5.3を実行しているので、それは問題ではないはずです。

PHPMyAdminを介して、データベースと「team」というテーブルがあります。古いWebサイトの元の設定に従ってすべての列を作成しているので、下のINSEERTクエリに表示される各項目はどこかに移動できます。

SQL接続コードに何かが欠けていますか?ユーザー名、パスワード、ドメイン、データベースはすべて正しいです...

$date = date("d/M/Y");
$name = Trim(stripslashes($_POST['name'])); 
$dob = Trim(stripslashes($_POST['dob']));
$contact = Trim(stripslashes($_POST['contact']));
$email = Trim(stripslashes($_POST['email'])); 
$preferredCity = Trim(stripslashes($_POST['preferredCity']));
$nightsMo = Trim(stripslashes($_POST['nightsMo']));
$nightsTu = Trim(stripslashes($_POST['nightsTu']));
$nightsWe = Trim(stripslashes($_POST['nightsWe']));
$nightsTh = Trim(stripslashes($_POST['nightsTh']));
$nightsFr = Trim(stripslashes($_POST['nightsFr']));
$nightsSa = Trim(stripslashes($_POST['nightsSa']));
$nightsSu = Trim(stripslashes($_POST['nightsSu']));
$ownCar = Trim(stripslashes($_POST['ownCar']));
$previousWork = Trim(stripslashes($_POST['previousWork']));

if (Trim($nightsMo)=="") $nightsMo="NULL";
if (Trim($nightsTu)=="") $nightsTu="NULL";
if (Trim($nightsWe)=="") $nightsWe="NULL";
if (Trim($nightsTh)=="") $nightsTh="NULL";
if (Trim($nightsFr)=="") $nightsFr="NULL";
if (Trim($nightsSa)=="") $nightsSa="NULL";
if (Trim($nightsSu)=="") $nightsSu="NULL";
if (Trim($ownCar)=="") $ownCar="NULL";

$username="XXX";
$password="XXX";
$database="XXX";


mysql_connect("example.co.uk",$username,$password);

@mysql_select_db($database) or die( "Unable to select database");


mysql_query("INSERT INTO team (t_date, t_name, t_dob, t_contact, t_email, t_preferredCity, t_nightsMo, t_nightsTu, t_nightsWe, t_nightsTh, t_nightsFr, t_nightsSa, t_nightsSu, t_ownCar, t_previousWork, t_picture) VALUES ('$date', '$name','$dob','$contact','$email','$preferredCity',$nightsMo,$nightsTu,$nightsWe,$nightsTh,$nightsFr,$nightsSa,$nightsSu,$ownCar,'$previousWork', '$filePath')");

mysql_close();
ジャコモ1968

原因が何であるかは不明ですが、コードをリファクタリングして、デバッグを容易にするために物事を合理化および簡素化しました。

私が最初にしたことは、すべての$_POSTチェックを1つのメイン配列($post_arrayを使用する構造に取り込み、その配列をロールスルーして値を処理し、同様の名前の変数に割り当てることでした。

さらに、$result文字列チェックを追加しました。mysql_queryこれは、それが返されるかどうかを確認するためのチェックを実行します。それが失敗した場合は、を介してエラーが何であるかを示してくださいmysql_error()これは、何が起こっているのかをデバッグするのに役立つ鍵になるはずです。

$date = date("d/M/Y");

// Set the post values array.
$post_array('name','dob','contact','email','preferredCity','nightsMo','nightsTu','nightsWe','nightsTh','nightsFr','nightsSa','nightsSu');

// Role through the post values array.
foreach($post_array as $post_key => $post_value) {
  $$post_key = isset($_POST[$post_key]) ? Trim(stripslashes($_POST[$post_key])) : null; 
}

$username="XXX";
$password="XXX";
$database="XXX";

mysql_connect("example.co.uk",$username,$password);

@mysql_select_db($database) or die( "Unable to select database");

$query = "INSERT INTO team (t_date, t_name, t_dob, t_contact, t_email, t_preferredCity, t_nightsMo, t_nightsTu, t_nightsWe, t_nightsTh, t_nightsFr, t_nightsSa, t_nightsSu, t_ownCar, t_previousWork, t_picture) VALUES ('$date', '$name','$dob','$contact','$email','$preferredCity','$nightsMo','$nightsTu','$nightsWe','$nightsTh','$nightsFr','$nightsSa','$nightsSu','$ownCar','$previousWork', '$filePath')";

// Run the query & return the result.
$result = mysql_query($query);

// Check the mysql query result. If there is none, there is an error. So tell us what the error is.
if (!$result) {
  die('Invalid query: ' . mysql_error());
}

mysql_close();

また、関連はありませんが、指摘する価値があるのは、mysql_*拡張機能がPHP5.3およびPHP5.4で減価償却されていることです。あなたはに切り替える必要があるmysqli_*ため、拡張mysql_*PHP 5.5に排除することで機能拡張。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

php insert mysql_query get id

分類Dev

mysql_query()PHPでINSERTステートメントを実行する際の問題

分類Dev

mysql_query()でのPHPログインコードエラー

分類Dev

php mysql_query()はエラーを返します

分類Dev

PHP5.6のmysql_query

分類Dev

mysql_queryは、ループ時に1回だけ実行されます-php

分類Dev

PHPの複数の$ query = mysql_query

分類Dev

mysql_queryが機能しないinnodbmysql / phpでのトランザクションロールバック

分類Dev

mysql_query()内のPhp変数

分類Dev

文字列をmysql_queryに渡す方法

分類Dev

phpのmysql_queryは同時にクエリをブロックしますか?

分類Dev

1つのPHPスクリプトに1つのmysql_queryが必要ですか?

分類Dev

Golang:Mysql Prepare Insertステートメントでdbテーブルに行が追加されない

分類Dev

php mysql(INSERT QUERY)

分類Dev

PHPで文字列変数にmysql_query文字列が含まれていることを検出するにはどうすればよいですか?

分類Dev

mysql_query文字列が更新されていません

分類Dev

select_queryをmysql_queryに変更しますか?

分類Dev

mysql_queryが機能しないのはなぜですか?

分類Dev

mysql_queryのネストされた選択

分類Dev

シェル exec から mysql_query に変数を渡す

分類Dev

mysql_query()は何か奇妙なものを返します

分類Dev

mysql_queryが間違った結果を返す

分類Dev

mysql_queryは代わりにtrueを返しますResource

分類Dev

mysql_query内にSQL変数を挿入

分類Dev

mysql_query()を使用するとmysqlエラーが発生します

分類Dev

mysql_fetch_arrayの間にmysql_queryの結果を取得します

分類Dev

PHPはmysql_queryからの結果の半分しか返しません

分類Dev

mysql_queryの結果は最初の使用後に消去されましたか?

分類Dev

mysql_query()は、パラメーター2がリソースであり、9行目の/home/u921305435/public_html/phpinfo.phpで指定された文字列であることを想定しています。

Related 関連記事

  1. 1

    php insert mysql_query get id

  2. 2

    mysql_query()PHPでINSERTステートメントを実行する際の問題

  3. 3

    mysql_query()でのPHPログインコードエラー

  4. 4

    php mysql_query()はエラーを返します

  5. 5

    PHP5.6のmysql_query

  6. 6

    mysql_queryは、ループ時に1回だけ実行されます-php

  7. 7

    PHPの複数の$ query = mysql_query

  8. 8

    mysql_queryが機能しないinnodbmysql / phpでのトランザクションロールバック

  9. 9

    mysql_query()内のPhp変数

  10. 10

    文字列をmysql_queryに渡す方法

  11. 11

    phpのmysql_queryは同時にクエリをブロックしますか?

  12. 12

    1つのPHPスクリプトに1つのmysql_queryが必要ですか?

  13. 13

    Golang:Mysql Prepare Insertステートメントでdbテーブルに行が追加されない

  14. 14

    php mysql(INSERT QUERY)

  15. 15

    PHPで文字列変数にmysql_query文字列が含まれていることを検出するにはどうすればよいですか?

  16. 16

    mysql_query文字列が更新されていません

  17. 17

    select_queryをmysql_queryに変更しますか?

  18. 18

    mysql_queryが機能しないのはなぜですか?

  19. 19

    mysql_queryのネストされた選択

  20. 20

    シェル exec から mysql_query に変数を渡す

  21. 21

    mysql_query()は何か奇妙なものを返します

  22. 22

    mysql_queryが間違った結果を返す

  23. 23

    mysql_queryは代わりにtrueを返しますResource

  24. 24

    mysql_query内にSQL変数を挿入

  25. 25

    mysql_query()を使用するとmysqlエラーが発生します

  26. 26

    mysql_fetch_arrayの間にmysql_queryの結果を取得します

  27. 27

    PHPはmysql_queryからの結果の半分しか返しません

  28. 28

    mysql_queryの結果は最初の使用後に消去されましたか?

  29. 29

    mysql_query()は、パラメーター2がリソースであり、9行目の/home/u921305435/public_html/phpinfo.phpで指定された文字列であることを想定しています。

ホットタグ

アーカイブ