尝试将变量从AJAX传递给PHP以获取MySQL查询时出错。我已经尝试过硬编码以确保查询有效,但是当我尝试动态传递变量时,它告诉我以下“错误:'where子句'中的未知列'$ searchid'”。我试图将下拉框的值发送到ajax以从MySQL数据库中提取数据。然后将返回的数据放入2个要编辑的文本框中。注意:我试图不使用jQuery框架,这样我就可以更好地理解AJAX实际上在做什么。
AJAX代码
function ajax_post(){
var request = new XMLHttpRequest();
var id = document.getElementById("editorginfo").value;
request.open("POST", "parse.php", true);
request.setRequestHeader("Content-Type", "x-www-form-urlencoded");
request.onreadystatechange = function () {
if(request.readyState == 4 && request.status == 200) {
var return_data = request.responseText;
alert (return_data);
document.getElementById("orgeditname").value = return_data;
document.getElementById("orgeditphone").value = return_data;
}
}
request.send("id="+id);
}
PHP解析代码
<?php
include_once('../php_includes/db_connect.php');
$searchid = $_POST['id'];
$sql = 'SELECT * FROM orginfo WHERE id = $searchid';
$user_query = mysqli_query($db_connect, $sql) or die("Error: ".mysqli_error($db_connect));
while ($row = mysqli_fetch_array($user_query, MYSQLI_ASSOC)) {
$orgid = $row["id"];
$orgname = $row["orgname"];
$orgphone = $row["orgphone"];
echo $orgname, $orgphone;
}
?>
已经有一段时间了,因为我有时间处理代码,所以我相信我使用的所有内容仍然相关。我也知道我还没有进行任何消毒,我想确保我能让这个功能先工作,而且我是目前唯一一个有访问权限的人。
提前感谢您的帮助。
答案 0 :(得分:1)
要解决您的直接问题,您需要更改此内容:
$sql = 'SELECT * FROM orginfo WHERE id = $searchid';
进入这个:
$sql = "SELECT * FROM orginfo WHERE id = $searchid";
由于您的字符串是单引号,因此它实际上是将字符串'$ searchid'传递给查询而不是$searchid
的值。