0

私のコーディングで小さな問題が発生しています。何らかの理由で、エントリが DB にドロップされません。どんな提案でも大歓迎です!これが私のコードです...

<?php 
    $dbhost="localhost"; 
    $dbname="DBNAME"; 
    $dbuser="USER"; 
    $dbpasswd="PASSWORD"; // connect to the db 

    $dbcxn = mysqli_connect($dbhost, $dbuser, $dbpasswd); 
    if (!$dbcxn) { 
        die('Could not connect: ' . mysql_error()); 
    } 

    $db_selected = mysqli_select_db($dbcxn, $dbname); 
    if (!$db_selected) { 
        die ('Can\'t use dbreviews : ' . mysql_error()); 
    } 

    $query = "INSERT INTO entries ( submitterFirstName, submitterLastName, submitterPhone, submitterEmail, referredFirstName, referredLastName, referredPhone, referredEmail, referredReason)
      VALUES ('$submitterFirstName', '$submitterLastName', '$submitterPhone', '$submitterEmail', '$referredFirstName', '$referredLastName', '$referredPhone', '$referredEmail', '$referredProject')";

    $result=mysqli_query($dbcxn, $query);

?>

4

3 に答える 3

0

まず最初にコードの書式設定を行う必要があります。これにより、コードが読みやすくなり、エラーを見つけやすくなります。

$query = "

INSERT INTO 
    entries 
    (
    submitterFirstName, 
    submitterLastName, 
    submitterPhone,        
    submitterEmail, 
    referredFirstName, 
    " . 
       "referredLastName, 
    referredPhone, 
    referredEmail, 
    referredReason
    )
        " .
    " VALUES 
    (
    '$submitterFirstName', 
    '$submitterLastName', 
    '$submitterPhone', 
    '    $submitterEmail', 
    '$referredFirstName'," .
    "'$referredLastName', 
    '$referredPhone', 
    '$referredEmail',    
    '$referredProject'
    );
"

上記はクエリ文字列が複数の行に分割されたものですが、すぐに明らかになるはずのエラーがいくつかありますか? フォーマットしたらecho $query、$query の出力を表示します。

また、php を使用せずに (mysql ワークベンチ、php admin などを使用して) 挿入を実行できるかどうかを確認してから、$query として設定した文字列値と比較してください。

// less errors, please note that inside "" you can include php $vars without needing to escape.  

$query = "

INSERT INTO 
    entries 
    (
    submitterFirstName, 
    submitterLastName, 
    submitterPhone,        
    submitterEmail, 
    referredFirstName, 
    referredLastName, 
    referredPhone, 
    referredEmail, 
    referredReason
    )
 VALUES 
    (
    '$submitterFirstName', 
    '$submitterLastName', 
    '$submitterPhone', 
    '$submitterEmail', 
    '$referredFirstName',
    '$referredLastName', 
    '$referredPhone', 
    '$referredEmail',    
    '$referredProject'
    );
";
于 2012-06-01T15:40:23.883 に答える
0

最初に確認したいことは、クエリを自分自身にエコーバックして読み直すことです。

次に、テーブル構造を確認します。列名のスペルがすべて正しいこと、およびすべてのフィールドがテーブルに存在することを確認してください (前に誤って列を追加するのを忘れていました)。

第 3 に、構成によっては、エラー メッセージが表示される場合と表示されない場合があります。ただし、手動で確認できます。

if (!$result) {
  echo mysqli_error($dbcxn);
}
于 2012-06-01T15:15:14.270 に答える
0

クエリ変数を次のように変更します。

$query = "INSERT INTO entries " .
 "( submitterFirstName, submitterLastName, submitterPhone, submitterEmail, referredFirstName, " .
 " referredLastName, referredPhone, referredEmail, referredReason )" .
 " VALUES ('" .
    $submitterFirstName . "', '" .
    $submitterLastName  . "', '" .
    $submitterPhone     . "', '" .
    $submitterEmail     . "', '" .
    $referredFirstName  . "', '" .
    $referredLastName   . "', '" .
    $referredPhone      . "', '" .
    $referredEmail      . "', '" .
    $referredProject    . "')";

そして、それは機能するはずです。

mysqli prepareの使用を提案する

于 2012-06-01T15:19:26.750 に答える