查询在php上执行不正确,但在mysql上执行此操作

问题描述:

我有一个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

这是一个设计错误,输入用户格式是从不同使脚本失败所需的格式。对不起这个错误,如果我浪费了你的时间。