2017-11-22 7 views
-1

他のスレッドから学んだことを一日中試してみると、 。私は基本的には、JavaScript functionからlocalhost database(AMPPSを使用して作成されたサーバー)にデータを送信しようとしています。JavaScript関数からAJAX経由でPHP関数を呼び出すと、mySQL(AMPPS localhost)にデータを格納するだけで動作しないようです。

現在、私は次の関数を持つJavaScriptファイルがあります。

function WritetoDB(){ 
    alert('Reached. No problem getting here.'); 
    $.get("savedata.php"); 
} 

を私も(その適切なパラメータとそのように)、$.ajax$.postを試してみたが、それらのどれもどちらか動作するようには思えません。もともと、この関数はデータベースに格納する必要のある変数を受け取って渡すことを前提としていましたが、変数を渡す前に最初に関数を呼び出そうとしています。

これは 'savedata.php' である:

<?php 
$servername = "localhost"; 
$username = "root"; 
$password = "mysql"; 
$databaseName = "database"; 
$tableName = "table"; 

$conn = new mysqli($servername, $username, $password); 

$A = mysqli_real_escape_string($conn, 'this is A'); 
$B = mysqli_real_escape_string(($conn, 'this is B')); 
$C = mysqli_real_escape_string(($conn, 'this is C')); 

$sql = "INSERT INTO `database`.`table` (columnA,columnB,columnC) 
VALUES ('$A', '$B', '$C')"; 

$conn->close(); 

?> 

Iはindex.phpファイルにPHPコードを実行しようと、それは、(データがデータベースに送信された)動作します。しかし、私はJavaScriptファイルの関数から呼び出そうとしているときには機能しません。私が言及したガイド/フォーラムのほとんどのソリューションは、他の人にとってはうまくいくようですが、私にとってはうまくいかないようです。

お手数をおかけしますが、よろしくお願いいたします。

+0

SQLインジェクションを防ぐために 'real_escape_string()'関数に頼らないでください。[それらだけでは不十分です](https://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql -real-escape-string)を指定します。あなたは[** mysqli **](https://secure.php.net/manual/en/mysqli.prepare.php)または[** PDO **](https ://secure.php.net/manual/en/pdo.prepared-statements.php)ドライバ。 [**この記事**](https://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php)には、いくつかの良い例があります。 –

+0

ちょうど質問:あなたはJQuery機能を使用しています。すべてのJQueryファイルを正しくインクルードしましたか? –

+0

コードをオンラインで表示 – Ali

答えて

0

phpコードをスタンドアロンで事前定義された/ダミー値で実行して、正しく動作しているかどうかを確認したり、必要な適切な応答を送信したりすることをお勧めします。

databaseにデータを保存していないphpファイルのトラブルシューティングを行うには、まず次のことを行う必要があります。

ラインに

$conn = new mysqli($servername, $username, $password); 
を変更するために、あなたはあなたの接続でデータベースパラメータを使用していない

$B = mysqli_real_escape_string($conn, 'this is B'); 
$C = mysqli_real_escape_string($conn, 'this is C'); 

に余分な括弧包ま変更して、これらの行に

$B = mysqli_real_escape_string(($conn, 'this is B')); 
$C = mysqli_real_escape_string(($conn, 'this is C')); 

を構文エラーを削除します

~

if ($conn->query($sql) === TRUE) { 
    echo "New record created successfully"; 
} else { 
    echo "Error: " . $sql . "<br>" . $conn->error; 
} 

はこちらをご覧前に、あなたは親切に不足しているデータベース内へのデータの挿入で主なものは、これらの行を追加しているあなたはexecuteこのqueryを必要とする後

$conn = new mysqli($servername, $username, $password,$databaseName); 

phpmysqlデータベースを接続して、sqlクエリ

w3schools

にデータを挿入する方法についての基本的なヘルプ210
関連する問題