我已经在这里检查了其他问题并尝试了我所看到的一切,但无法解决我的问题。
详情如上;
main.js
// ajax查询部分
$("#register").submit(function (event, request) {
var password = $(this).find('input[name="objPassword"]').val();
var namesurname = $(this).find('input[name="objNameSurname"]').val();
var email = $(this).find('input[name="objEmail"]').val();
var gsm = $(this).find('input[name="objGsm"]').val();
var adres = $(this).find('input[name="objAddress"]').val();
var termsOk = $(this).find('input[name="objAcceptTerms"]').val();
var formURL = $(this).attr("action");
var postMessage;
if (postMessage) {
postMessage.abort();
}
var postData = {
"objPass": password,
"objNameSurname": namesurname,
"objEmail": email,
"objGsm": parseInt(gsm),
"objAdres": adres,
"objTerms": termsOk
};
// console.log(postData);
// alert(password);
postMessage = $.post(formURL, postData, function (data) {
console.log("Data: " + data);
});
...
register.php
$conn = new PDO('mysql:host=localhost;dbname=db_trop@Dubai;charset=utf8','root','mysql');
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
if (isset($_POST)) {
// CHECK IF PASSWORD ALREADY IN USE
$objP = clear(strtoupper($_POST['objPass'])); // Get Ajax Data
$stmt = $conn->prepare('SELECT Id,PassNumber FROM tblRecords WHERE PassNumber = '.$objP.'');
$stmt->execute();
$PassResult = $stsmt->fetchAll;
// (PDO::FETCH_ASSOC)
if($PassResult) {
$data = array('FAIL' => 'GIRILEN SIFRE DAHA ONCE KULLANILMIS', 'postData : ' => $_POST);
echo json_encode($data);
} else {
$data = array('SUCCESS' => 'SIFRE BOSTA', 'postData' => $_POST);
echo json_encode($data);
MySQL表格详细信息如下: 错误I' VE GOT 我的 tblRecords 中有 1 记录。
我的目标网页上有一个表单。第一个输入称为 objPassword ,它必须比较 tblRecords 表的 PassNumber 列中的值。
问题是它表示我的输入值不存在于我的表中。它是一个输入值。另一个是表格的一列。
如何使用这些代码比较输入和列之间的值?
答案 0 :(得分:1)
$objP
为13123ASD
,表示PassNumber = '.$objP.'
为PassNumber = 13123ASD
,而13123ASD
未被引用,因此被视为列名称。你需要引用它:
'SELECT Id,PassNumber FROM tblRecords WHERE PassNumber = "'.$objP.'"'
虽然理想情况下你应该绑定参数。
答案 1 :(得分:0)
使用bindParam
而不是将值替换为查询。然后,您不必担心引用和转义该值。
$stmt = $conn->prepare('SELECT Id,PassNumber FROM tblRecords WHERE PassNumber = :passnum');
$stmt->bindParam(':passnum', $objP);
$stmt->execute();
$PassResult = $stmt->fetchAll();