查询在php上没有正确执行但在mysql

时间:2016-07-05 07:41:02

标签: php mysql

我有一个HTML页面,通过它我将获得用户输入。我正在使用这些值并在我的mysql数据库上执行查询。这是我的PHP代码。

<?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,&#39; filename.txt&#39;);

它创建一个带文件名的文件,完美地完成写作工作。使用PHP相同的结果是没有实现的,但我没有看到任何错误抛出。

此查询过程的作用是根据输入执行一些查询,并将结果写入输出文件,该文件的位置作为参数传递。 提前致谢

注意:我也尝试添加&#39 ;;&#39;在$查询中,但它没有任何区别。

编辑: 当我使用简单查询而不是预处理语句时它似乎工作但我不愿意使用简单的语句因为SQL注入

1 个答案:

答案 0 :(得分:1)

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