我编写了一个脚本,简而言之,它应该从数据库中查询数据并将结果回显到HTML表单字段中。但是,我没有成功。请参阅以下代码:
<?php
include("dbconfig.php");
$val = '6';
$result = mysqli_query("Select * from test where testid= '$val'");
$name = (mysqli_num_rows($result)==1) ? mysqli_fetch_assoc($result) : null;
if(is_array($name)){
?>
<html>
<body>
<form>
Name: <input type="text" id="firstname" value="<?php echo $name['firstname']; ?>"/>
</form>
<?php
} else {
echo "No such name exists";
}
?>
</body>
</html>
有人可以告诉我我做错了什么。因为它不会回应任何东西进入该领域,我觉得它很烦人,因为我遇到的大多数脚本都非常类似于这个。
非常感谢帮助。
谢谢,
苏海尔。
答案 0 :(得分:1)
您没有将数据库连接传递给查询,因此它永远不会被执行。
mysqli_
这行代码:
$result = mysqli_query("Select * from test where testid= '$val'");
需要有一个连接参数:
$result = mysqli_query($connection, "Select * from test where testid= '$val'");
并且我们不知道您使用哪个MySQL API进行连接。
您的查询可能已失败,因此请检查错误。
$result = mysqli_query("Select * from test where testid= '$val'")
or die(mysqli_error($connection));
并将$connection
变量替换为您在dbconfig.php
中指定的变量,我们不知道。
不同的MySQL API /函数不会混用。
请参阅以下链接http://php.net/manual/en/mysqli.error.php和http://php.net/manual/en/function.error-reporting.php 并将其应用于您的代码。
您也可以使用SQL注入。使用准备好的声明。
参考文献:
将error reporting添加到文件的顶部,这有助于查找错误。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code
旁注:只应在暂存时进行显示错误,而不是生产。
如果要检查是否存在行,请参阅Stack上的其他答案:
答案 1 :(得分:1)
我已经测试过以下内容并且可以正常使用。 @ Fred-ii-给了你很多好的信息,特别是使用错误调试 - 但是你需要提供你缺少的连接对象。
<?php
error_reporting( E_ALL );
include("conn.php");
$val = 6;
/* What is the name of the $connection object ? */
$result = mysqli_query( $conn, "Select * from `test` where `testid`='$val'" );
$name=( $result ) ? mysqli_fetch_assoc( $result ) : false;
?>
<html>
<head>
<title>Ya gotta have a title...</title>
</head>
<body>
<?php
if( !empty( $name ) ){
echo "
<form>
Name: <input type='text' id='firstname' value='{$name['firstname']}'/>
</form>";
} else {
echo "No such name exists";
}
?>
</