0

何らかの理由でコードがテーブルに何も挿入されていないため、PHPコーディングは初めてです。私はこの問題に数時間取り組んできましたが、まったくわかりません。

管理者が php を使用し、それを使用して php スクリプトを生成しましたが (この現在のバージョンのコードではありません)、それでも機能しませんでした。

<?

//data

$ID = $_GET['ID'];
$Type = $_GET['Type'];
$Name = $_GET['Name'];
$Addr = $_GET['Addr'];
$Phone = $_GET['Phone'];
$startDate = $_GET['startDate'];
$endDate = $_GET['endDate'];
$SRN = $_GET['SRN'];

//sql info
$user = $_GET['user'];
$pass = $_GET['pass'];

echo " 

Hostname: $ID
Dev_Type: $Type
User_Name: $Name
User_addr: $Addr
User_Phone: $Phone
DATE_START: $startDate
Date_END: $endDate
Square Recipt Number: $SRN

";



// sql insert

$con=mysqli_connect("mysql1098.servage.net",$user,$pass,"RC_DB");

mysqli_query($con,"INSERT INTO RC_DB.Current_Rentals (Hostname,Dev_Type,User_Name,User_Addr,User_Phone,Date_Start,Date_End,STOLEN,Square_Recipt_Number)
VALUES ($ID,$Type,$Name,$Addr,$Phone,$startDate,$endDate,'0',$SRN)");

mysqli_close($con);

?>

何か案は?

4

2 に答える 2

2

テキスト項目をアポストロフィで囲む必要があります。これは私も過去に混乱させました。パラメータを関数に追加するのではなく、mysql に渡されるテキストを引用しています。したがって、$Name は '$Name' である必要があります。次のようなことを試してください。

mysqli_query($con, "INSERT INTO RC_DB.Current_Rentals 
(Hostname,Dev_Type,User_Name,User_Addr,User_Phone,Date_Start,Date_End,STOLEN,Square_Recipt_Number)
VALUES ('$ID','$Type','$Name','$Addr','$Phone','$startDate','$endDate','0','$SRN')");

編集: 通常、PHP SQL ステートメントのトラブルシューティングを行う方法は、テキストをエコーし​​てから、phpMyAdmin でコードを実行することです。通常、phpMyAdmin は PHP よりも適切なエラー メッセージを表示します。

var $text = "INSERT INTO ... (...) VALUES ('$ID', '$Type'...)";
echo $text;

これが機能したら、このテキスト変数を mysqli_query 呼び出しに追加して、それが機能するかどうかを確認できます。

var $text = "INSERT INTO ... (...) VALUES ('$ID', '$Type'...)";
mysqli_query($con, $text);
于 2013-05-09T22:47:19.337 に答える
0

おそらく、挿入する値を二重引用符で囲むか、mysqli_real_escape_string で渡す必要があります

mysqli_query($con,"INSERT INTO RC_DB.Current_Rentals (Hostname,Dev_Type,User_Name,User_Addr,User_Phone,Date_Start,Date_End,STOLEN,Square_Recipt_Number) VALUES (\"$ID\",\"$Type\",\"$Name\",\"$Addr\",\"$Phone\",\"$startDate\",\"$endDate\",'0',\"$SRN\")")

mysqli_real_escape_string の方が優れていますが、SQL インジェクションからの保護が強化されているためです。

編集: Remco の 2 番目のコメントに従って、正しい方法については、この例を参照してください。

于 2013-05-09T22:28:12.243 に答える