2016-07-05 20 views
0

私はユーザー入力を取得するHTMLページを持っている。私はそれらの値を取って、私のmysqlデータベースのクエリを実行しています。これは私のPHPコードです。PHPで正しくクエリが実行されないが、mysqlでクエリが実行されない

<?php 
ini_set('display_errors', 1); 
error_reporting(E_ALL); 
$username = "xxx"; 
$password = "xxx"; 


$A = $_POST['A']; 
$B = strtoupper($_POST['B']); 
$C = $_POST['C']; 
$D = $_POST['D']; 
$E = $_POST['E']; 
$F = $_POST['F']; 

try { 
    $conn = new PDO('mysql:host=yyyy;dbname=' . $A, $username, $password); 
    echo "Connected Successfully <br>"; 
} catch (PDOException $e) { 
    print "ERROR! : " . $e->getMessage() . "<br/>"; 
    die(); 
} 

$query = "call query(?,?,?,?,?,1,'filename.txt')"; 


$stmt = $conn->prepare($query); 
$stmt->execute(array($B, $C, $D, $E, $F)); 
?> 

このコードではエラーは発生しませんが、スクリプトは実行する必要のあるジョブを実行していません。私は、MySQLデータベースにアクセスし、クエリ

コールクエリー(r_value、r_value、r_value、r_value、r_value、1、 'ファイル名.txt')を実行する場合、

ファイル名を含むファイルを作成し、書き込みジョブを完璧に実行します。 PHPを使用すると、同じ結果が達成されていませんが、スローされたエラーは表示されません。

この照会手順の役割は、入力に基づいていくつかの照会を実行し、その結果が出力ファイルに書き込まれ、そのロケーションがパラメーターとして渡されることです。 ありがとうございます

注:また、 ';'を追加しようとしました。 $クエリでは違いはありませんでした。

編集:私は、単純なクエリの代わりに、プリペアドステートメントを使用していたときに 動作しているようですが、私はSQLインジェクション

+3

注:疑問符プレースホルダは引用符を必要としません – Ghost

+1

また、DBユーザーがストアドプロシージャを使用するための正しいアクセス許可を持っていることを確認してください。 – ArtisticPhoenix

+0

はい、おそらく書き込みに関する許可がありません。 – Yvan

答えて

0

の簡単なステートメントを使用して喜んでいないですそれは設計間違いだった、ユーザが入力フォーマットが異なっていましたスクリプトを失敗させるために必要なフォーマット。このミスのために申し訳ありません、あなたの時間を無駄にした場合。

関連する問題