这最初是关于PHP的问题,我编辑了PHP问题如下:
我在本网站上找到的AJAX代码旨在将错误消息放入一个警报框,直到现在为止。对不起,如果有些错误很明显,那就太过分了。
PHP:
<?php
include 'pdo_connect.php';
error_reporting(E_ALL);
ini_set('display_errors', 1);
if ($uname = isset($_POST['uname']) ? $_POST['uname'] : ''){
$conn = new PDO('mysql:host=localhost;dbname=users', USER, PASS);
$conn->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$query = 'SELECT * FROM `users` WHERE `uname` = :uname';
$stmt = $conn->prepare($query);
$stmt->bindParam(":uname",$uname, PDO::PARAM_STR, strlen($uname));
$rows = $stmt->fetch(PDO::FETCH_ASSOC, 0);
echo json_encode($rows);
echo json_encode("It works!");
$stmt->execute();
$conn = null;
$query = null;
}
?>
AJAX:
function checkName() {
$.ajax({
url: "check_name.php",
data: {uname: $('#uname').val(), upassword: $('#upassword').val()},
type: "POST",
dataType:"text"
})
function reqListener () {
console.log(this.responseText);
};
var oReq = new XMLHttpRequest();
oReq.onload = function() {
alert(this.responseText);
};
oReq.open("post", "check_name.php", true);
oReq.send();
};
这正是我的代码在JavaScript文件中的样子。我在文件中还有其他几个功能,所以我不认为我的JavaScript文件应该受到责备。
答案 0 :(得分:0)
尝试
$sth = $conn->prepare($stmt);
之前
$stmt->bindParam(':uname', $uname, PDO::PARAM_STRING);
此外,在执行()查询以转储PDO错误数据(如果存在错误(未测试,但要点是正确的)后,请使用以下代码。请参阅PDOStatement::errorCode()和PDOStatement::errorInfo())< / p>
if($stmt->errorCode() !== "00000") {
var_dump($stmt->errorInfo())
}
答案 1 :(得分:0)
此:
/path/to/chrome --allow-file-access-from-files
是一个字符串。它没有名为 var request = new XMLHttpRequest();
// may be necessary to escape path string?
request.open("GET", "C:\\Users\\PalFS\\Downloads\\Fiverr_Example_List (1).xlsx");
request.responseType = "arraybuffer";
request.onload = function () {
// this.response should be `ArrayBuffer` of `.xlsx` file
var file = new File(this.response, "Fiverr_Example_List.xlsx");
// do stuff with `file`
};
request.send();
的方法。您需要首先准备语句,然后将变量绑定到它:
$stmt = 'SELECT * FROM users WHERE uname = ?';
这将返回bindParam
类型的对象,该对象具有$query= 'SELECT * FROM users WHERE uname = ?';
$stmt = $conn->prepare($query);
$stmt->bindParam(1, $uname);
方法,您可以调用
如果要使用':uname',则需要在查询中指定它。如果使用问号占位符,则必须使用PDOStatement
中的数字。使用文本占位符,您可以这样做:
bindParam
查看有关PHP PDO准备语句的this教程了解更多信息。