查询在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注入的
答
这是一个设计错误,输入用户格式是从不同使脚本失败所需的格式。对不起这个错误,如果我浪费了你的时间。
注意:问号占位符不需要引号 – Ghost
还要确保您的数据库用户具有使用存储过程的正确权限。 – ArtisticPhoenix
是的,您可能没有写入权限。 – Yvan