php - 对mysqli_fetch_assoc()进行故障排除

标签 php html mysql database mysqli

我将mysqli查询的结果转换为可以填充文本区域的变量时遇到问题。我一直在尝试在网上搜索所有此类示例,但似乎找不到解决我问题的方法。

我沿着这些路线的最后一个项目使用mysql,而不是mysqli,因此它并不完全相同,而且我的项目变化很大,不允许复制粘贴代码。

我正在尝试与数据库建立连接,提取post元素中用作搜索元素的信息,并用结果填充文本字段。我什至还没有选择文本区域的内容,因为我还无法弄清楚如何返回可以添加到变量/数组中的值。

我对PHP不太有经验,所以我不了解每种语言。任何帮助将不胜感激。

代码如下:

<html>
<head></head>

<script language="javascript" type="text/javascript">
function populateForm(jack) {
    document.getElementById('id_cubenum').value = jack;
    document.getElementById('id_firstname').value = resultArray[1];
    document.getElementById('id_lastname').value = resultArray[2];
    document.getElementById('id_username').value = resultArray[3];
}
</script>

<body>
<form>
ID: <input type="text" name="elem_cubenum" id="id_cubenum" maxlength="3" size="25" disabled><br>
<br>
First Name: <br>
<input type="text" name="elem_firstname" id="id_firstname"><br>
Last Name: <br>
<input type="text" name="elem_lastname" id="id_lastname"><br>
Username: <br>
<input type="text" name="elem_username" id="id_username" maxlength="8" size="8">    <br><br>
<hr>
Department:<br>
    <select name="elem_dept" id="id_dept">
        <option value="a">A</option>
        <option value="d">D</option>
        <option value="r">R</option>
        <option value="m">M</option>
        <option value="o">O</option>
    </select><br><br>
<hr>
Machine Name: <br>
<input type="text" name="elem_machname" id="id_machname" maxlength="16"><br>
Machine Inv#: <br>
<input type="text" name="elem_machnum" id="id_machnum" maxlength="5"><br>
Monitor Inv#: <br>
<input type="text" name="elem_monnum" id="id_monnum" maxlength="5"><br><br>
<hr>
Operating System:<br>
<select name="elem_os" id="id_os">
    <option value="winxp">Windows XP</option>
    <option value="win7">Windows 7</option>
    <option value="other">Other</option>
</select>
<br><hr>
</form>

<?php
$dbhost = "xxxxxxxxxxx";
$dbname = "xxxxxxxxxxx";
$dbuser = "xxxxxxxxxxx";
$dbpass = "xxxxxxxxxxx";
$p_getJack = $_POST['elem_seatNum'];

$conn = mysqli_connect($dbhost,$dbuser,$dbpass,$dbnme);
$query = "SELECT * FROM locations WHERE locateid = '$p_getJack'";

echo '<img src="check.jpg" alt="Database Connection Made">' . 'Connection to the server was successfully made. <br>Jack Number: ' . $p_getJack . '<br><hr><br>';

if (mysqli_connect_errno()) {
    echo "Failed to connect! " . mysqli_connect_error();
}

$result = mysqli_query($conn, $query);
$row = mysqli_fetch_assoc($result);
printf("The results of %u and %s are listed.",$row["firstname"],$row["username"]);

mysqli_close($conn);
?>
</body>
</html>


结果如下:

Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in /home/a7060806/public_html/form.php on line 66


关于我在这里做错什么的任何想法...?我知道连接信息是正确的,因为它是以前从页面复制粘贴的,并且在那儿工作正常。

最佳答案

$dbname = "xxxxxxxxxxx";
$conn = mysqli_connect($dbhost,$dbuser,$dbpass,$dbnme);


请注意如何将$dbname定义为数据库名称,而改为使用$dbnme

另外,您的代码容易受到SQL Injection的影响,请确保您验证和清理用户输入。访问有关如何防止SQL注入的问题here或防止SQL注入的指南here

关于php - 对mysqli_fetch_assoc()进行故障排除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20555061/

相关文章:

php - 套接字不工作PHP

javascript - 自动刷新 div 不起作用

jquery - CSS 的 Firefox 兼容性问题

css - 如何在一个多行换行句子中的每一行添加水平填充?

php - 给定大写名称转换为 Proper Case,处理 "O' Hara"、 "McDonald" "van der Sloot"等

php - laravel是否有可能达到1000 TPS?

javascript - 使 div 在某个点后出现并在另一个特定点后消失

mysql - 获取长文本mysql的日期名称

mysql - 在 MySQL 中创建唯一的 select 语句

mysql - docker-compose mysql 导入失败 - 输入设备不是 TTY