2016-07-05 66 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, 'FILENAME.TXT');

它創建一個帶有文件名的文件並完成寫作工作。使用PHP相同的結果沒有實現,但我也沒有看到任何錯誤拋出。

該查詢過程的工作是根據輸入執行一些查詢,並將結果寫入輸出文件,該文件的位置作爲參數傳遞。 在此先感謝

注意:我也嘗試添加';'在$查詢中,但它沒有區別。

編輯: 當我使用簡單的查詢,而不是它似乎工作準備好的語句,但我不願意用簡單的語句,因爲SQL注入的

+3

注意:問號佔位符不需要引號 – Ghost

+1

還要確保您的數據庫用戶具有使用存儲過程的正確權限。 – ArtisticPhoenix

+0

是的,您可能沒有寫入權限。 – Yvan

回答

0

這是一個設計錯誤,輸入用戶格式是從不同使腳本失敗所需的格式。對不起這個錯誤,如果我浪費了你的時間。