gpt4 book ai didi

javascript - 从其他页面调用时在 PHP 中调试 MySQL 查询

转载 作者:行者123 更新时间:2023-11-30 00:52:11 25 4
gpt4 key购买 nike

Page1 有一个输入表单。我使用 JavaScript 验证输入字段:

<input type="text" name="frmBrand" size="50" onkeyup="BrandCheck();" maxlength="100" id="frmBrand"   />
<span id="frmBrand_Status">Enter existing or new brand</span>

然后在 JavaScript 中调用 PHP 脚本:

function BrandCheck()
{
var jsBrandName = document.forms["AddPolish"]["frmBrand"].value;

if (jsBrandName !==null || jsBrandName !== "")
{
document.getElementById("frmBrand_Status").textContent = jsBrandName
// alert(jsBrandName);
var xmlhttp = new XMLHttpRequest();
var url = "CheckBrand.php";
var vars = "jsBrandName="+jsBrandName;
xmlhttp.open("POST",url,true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.onreadystatechange = function()
{
if(xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
var return_data = xmlhttp.responseText;
document.getElementById("frmBrand_Status").innerHTML = return_data;
}
}
xmlhttp.send(vars);
document.getElementById("frmBrand_Status").innerHTML = "processing.....";
}
}

到目前为止一切顺利。我确实从 CheckBrand.php 获得结果,因为它更改了 frmBrand_Status。但我无法从 PHP 页面获取任何数据库结果。

<?php
if(mysqli_connect_errno()) { //if connection database fails
echo("Connection not established ");
}
//by now we have connection to the database
else
{
if(isset($_POST['jsBrandName']))
{ //if we get the name succesfully
$jsBrandName = $_POST['jsBrandName'];
$dbBrandName = mysql_real_escape_string($jsBrandName);
if (!empty($dbBrandName))
{
$dbBrandName = $dbBrandName . "%";
$sqlQuery = "SELECT `BrandName` FROM `Brand` WHERE `BrandName` like '$dbBrandName' ORDER BY `BrandName`";

$result = mysqli_query($con, $sqlQuery);
$NumRows = mysqli_num_rows($result);
// $BrandName_result = mysql_fetch_row($BrandName_query);
echo "Result " . $dbBrandName . " ----- ". $jsBrandName . "Number rows " .$NumRows. " BrandName = " .$result. " SQL " .$sqlQuery;

if( $BrandName_result = mysql_fetch_row($BrandName_query))
{
While ($BrandName_result = mysql_fetch_row($BrandName_query))
{
echo "Brand = " .$BrandName_result[0];
}
}
}
else
{
echo "dbBrandName = empty" . $dbBrandName;
}
}
}
?>

这样做时,html页面显示正常变量的不断变化。例如,当输入字段包含“Clu”时,我会得到以下输出:span ID frmBrand_Status:

Result Clu% ----- CluNumber rows BrandName =  SQL SELECT `BrandName` FROM `Brand` WHERE `BrandName` like 'Clu%' ORDER BY `BrandName`

这看起来不错,因为品牌名称附加了 %,但行数未显示(空字段?),SQL 查询已显示且看起来不错,但我不明白任何结果。

并且 if( $BrandName_result = mysql_fetch_row($BrandName_query)) 部分将无法到达,因此调用查询时肯定出现了问题。

当我通过 PHPMyAdmin 运行相同的查询时,我确实得到了我期望的结果,即 1 行带有品牌名称的结果。

我正在使用 firebug 来尝试对 SQL 查询进行故障排除,但我找不到可以检查此问题的位置,而且我可能无法,因为 PHP 是服务器端的。正确的?但我该如何解决这个问题呢?

最佳答案

发现问题所在了。我用来打开数据库的 $con 字符串不再可用。在网站的其他页面上,$con 可用,我使用索引页面上的包含脚本加载数据库。但当通过 XMLHttpRequest() 调用该变量时,该变量似乎丢失了。现在我想这是合乎逻辑的,因为这也可以是对远程服务器的调用。所以我的 CheckBrand.php 页面缺少连接数据库的 $con var。

关于javascript - 从其他页面调用时在 PHP 中调试 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20873825/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com