2017-07-27 14 views
0

私は、受信SMSアプリケーションのために作成しているアプリケーションを持っています。これは、http投稿から情報を取得し、データベースに挿入します。 http postフォームをテキストファイルに保存することはできますが、MySQLデータベースに保存することはできません。私は何を間違えているのですか?あなたがこれより構文エラーを見つけ出すことができれば、それはあなたのための無料です!私はエントリを追加するコードも必要です、それを超簡単にしてくださいありがとう!予約語であるからHTTP POST to MySQL Database INSERT

<?php 
header('Content-Type: text/xml'); 
$From = $_POST['From']; 
$Body = $_POST['Body']; 
$ApiVersion = $_POST['ApiVersion']; 
$To = $_POST['To']; 
$AccountSid = $_POST ['AccountSid']; 
$SmsStatus = $_POST['SmsStatus']; 
$SmsSid = $_POST ['SmsSid']; 

$servername = "localhost"; 
$username = "root"; 
$password = "passwordhere"; 
$dbname = "SMS_Response"; 

// Create connection 
$conn = mysqli_connect($servername, $username, $password, $dbname); 
// Check connection 
if (!$conn) { 
    die("Connection failed: " . mysqli_connect_error()); 
} 

$sql = "INSERT INTO iPad_Contest (from, to, sms_message, sms_sid) 
VALUES ('$From' , '$To' , '$Body' , '$SmsSid')"; 

if (mysqli_query($conn, $sql)) { 
    echo "New record created successfully"; 
} else { 
    echo "Error: " . $sql . "<br>" . mysqli_error($conn); 
} 

mysqli_close($conn); 
?> 
+2

[リトルボビー](http://bobby-tables.com/)*** *** [あなたのスクリプトは、SQLインジェクション攻撃の危険性があります。 http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php**** [準備済み]について学ぶ(http://en.wikipedia.org/wiki/Prepared_statement) )[MySQLi]の文(http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)を参照してください。 [文字列をエスケープする](http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string)でも安全ではありません! –

+0

'$ _POST ['SmsSid'];'と '$ AccountSid = $ _POST ['AccountSid'];'あなたはそれらを見ますか? –

+0

@JayBlanchard Negative。それはデータベースへのエントリを妨げるべきではありません。リンクしたページのすべての指示に従っています。 – fixnode

答えて

2

SQLインジェクションの問題を解決した後

は、あなたのカラム名

に参照してください。そしてそうかもしれない。 を参照してください:あなたの列名(とテーブル名)を中心にbackticsを置くことによってこの問題を解決するhttps://dev.mysql.com/doc/refman/5.7/en/keywords.html

。しかし、私の意見では、より良い名前の列を選択することが良いです

+0

チャームのように働いた。私はVALUESをfromnumとtonumに変更し、それがうまくいった – fixnode