嘿伙计们,我有以下 $.ajax 调用:
$.ajax({
type: "POST",
dataType: "json",
url: '/pcg/popups/getNotes.php',
data:
{
'nameNotes': notes_name.text(),
},
success: function(response) {
$('#notes_body').text(response.the_notes);
alert(response.the_notes);
}
)};
现在专注于data:
假设我发送了“BillCosby”。这将被发送到指定的文件,我在该文件中有这个:
$username_notes = $_POST['nameNotes'];
现在假设我只是让 $username_notes 像这样在 json 中返回......
$returnArray = array( 'the_notes' => $username_notes );
echo json_encode($returnArray);
这将起作用,响应将是 BillCosby。现在,当我尝试使用 PDO 从我的 MySQL 数据库中获取 BillCosby 的值时,它将返回 null ....在显示整个文件的代码之前,我只想明确 PDO 有效完美,如果我给变量 $username_notes 'BillCosby' 的直接值,我会完美地运行数据库,如果我有 $_POST['nameNotes']; 它只会返回 null;在前。
getNotes.php:
$username_notes = $_POST['nameNotes'];
grabNotes($username_notes);
function grabNotes($xusername)
{
.....
$newUser = $xusername;
try {
# MySQL with PDO_MYSQL
$DBH = new PDO("mysql:host=$hostname;dbname=$database", $username, $password);
$DBH->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
}
catch(PDOException $e) {
echo "I'm sorry, I'm afraid I can't do that.";
file_put_contents('PDOErrors.txt', $e->getMessage(), FILE_APPEND);
}
$sql = "SELECT notes FROM csvdata WHERE username = :username";
$getmeminfo = $DBH->prepare($sql);
$getmeminfo->execute(array(':username' => $newUser));
$row = $getmeminfo->fetch(PDO::FETCH_ASSOC);
$notes = $row['notes'];
$returnArray = array( 'the_notes' => $row['notes'],);
echo json_encode($returnArray);
$DBH = null;
}
所以我的问题是,为什么我不能从 PDO 语句中取回返回值?如果我在 $.ajax 文件调用的文件中告诉 PDO 语句名称 - 'BillCosby',它将完美运行。但如果我通过 $_POST 从 $.ajax 获取值,它将不起作用并返回 null。有趣的是我可以返回与发送的相同的值。
谢谢你们的时间!