将变量从AJAX传递到PHP以进行MySQL查询时出错

时间:2014-02-05 14:06:58

标签: php mysql ajax

尝试将变量从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;

}
?>

已经有一段时间了,因为我有时间处理代码,所以我相信我使用的所有内容仍然相关。我也知道我还没有进行任何消毒,我想确保我能让这个功能先工作,而且我是目前唯一一个有访问权限的人。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

要解决您的直接问题,您需要更改此内容:

$sql = 'SELECT * FROM orginfo WHERE id = $searchid';

进入这个:

$sql = "SELECT * FROM orginfo WHERE id = $searchid";

由于您的字符串是单引号,因此它实际上是将字符串'$ searchid'传递给查询而不是$searchid的值。