Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PHP脚本从Mysql数据库中提取所需行_Php_Html_Mysql - Fatal编程技术网

如何使用PHP脚本从Mysql数据库中提取所需行

如何使用PHP脚本从Mysql数据库中提取所需行,php,html,mysql,Php,Html,Mysql,我已经创建了一个HTML表单,它接受用户的输入,现在我需要在Mysql数据库中搜索用户输入的名称,并打印与存储在Mysql数据库中的用户输入的名称相关的详细信息。 下面的脚本正在创建HTML表单以接受用户输入,保存为“ProcessTracking.HTML” 输入SO编号 搜寻 下面是名为“details.PHP”的PHP脚本 您将mysql和mysqliapi混合在一起。试着使用其中一个 注意:mysqlapi从PHP5.5.0开始就不受欢迎了首先,您没有在WHERE of SQL语

我已经创建了一个HTML表单,它接受用户的输入,现在我需要在Mysql数据库中搜索用户输入的名称,并打印与存储在Mysql数据库中的用户输入的名称相关的详细信息。
下面的脚本正在创建HTML表单以接受用户输入,保存为“ProcessTracking.HTML”


输入SO编号

搜寻
下面是名为“details.PHP”的PHP脚本


您将
mysql
mysqli
api混合在一起。试着使用其中一个


注意:
mysql
api从PHP5.5.0开始就不受欢迎了

首先,您没有在WHERE of SQL语句中使用$\u GET['SO\u Number']参数。其次,您同时使用mysql和mysqli,它们完全不同,不能一起工作。有关用法,请参阅和。也可以使用
print\r($row)

以下是更正后的代码:

<?php
$userinput = $_GET['SO_Number'];
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "ProcessTrackingSystem";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_errno) {
    printf("Connect failed: %s\n", $conn->connect_error);
    exit();
}

$result = mysqli_query($conn, "SELECT * FROM ProcessTrackingSystem.ProcessDetails WHERE SO_Number = '$userinput'") or die(mysqli_error($conn));

$row = mysqli_fetch_row($result);

print_r($row);

$conn->close();
?>   

第一个错误

正如上面所说的,这是因为这行中的语法错误

print_r"$row";
应该是
print\r($row)

第二个错误

您正在混合使用
mysql
&
mysqli

我不能肯定你的桌子

推荐:

我建议您打开错误报告,如果没有,这些错误将出现在您的
错误日志
文件中

同样,为了调试sql,您可以首先构造sql查询,在phpmyadmin或查询的相关工具中运行,然后启动查询并完成此操作

注意:

如果您在联机中使用这些代码,则
错误日志将位于执行此页面的目录中。(但它可能会根据您的主机而改变)

如果您在本地计算机上运行,错误日志可能会根据您使用的服务器进行定位

您可以通过
phpinfo
打印php的配置来查找,并查找
错误日志

希望这件事能解决您的问题

<?php
    $servername = "localhost";
    $username = "root";
    $password = "";
    $dbname = "ProcessTrackingSystem";
    $so = $_POST['SO_Number'];

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$stmt = $conn->prepare("SELECT * FROM ProcessDetails WHERE SO_Number=$so");
$stmt->execute();
$result = $stmt->get_result();
$row = $result->fetch_assoc();

print_r($row[SO_Number]);
$conn->close();
?>


检查语法
打印($row)
;空白页表示错误。这些错误可以在日志文件中找到。除了如何在网页中打印检索到的数据??我可以在哪里获取日志文件??这不是答案,请尝试在注释中添加此内容。您已使用
mysqli
初始化连接,并使用
mysql
查询数据库。它们是独立的API。如果需要查找包含用户输入的特定行,则需要添加
WHERE
子句。还没有评论权限:(我得到的是同一个空白页,先生。对不起,我忘了您在表单中使用get方法,只需将其替换为method=“POST”或在PHP中替换为$so=$\u get['so\u Number'];我做了一些更改,现在试试。我将整个代码添加到测试中,它将为您提供SO_编号的输出。如果它工作,那么您可以从该行获取所有详细信息。是的,我更改了,先生,现在它工作了,但是它只显示结果,如果我想要列的名称,那么我如何更改脚本?然后您可以这样打印名称:printf(“SO_Number:%s(Name:%s)\n”、$row[“SO_Number”]、$row[“Name”]);先生print_r对我不起作用,所以我改为printf,哦,是的,我无意中没有更改您以前的答案,我只是复制了它并更改了字符串。
print_r"$row";
<?php
    $servername = "localhost";
    $username = "root";
    $password = "";
    $dbname = "ProcessTrackingSystem";
    $so = $_POST['SO_Number'];

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$stmt = $conn->prepare("SELECT * FROM ProcessDetails WHERE SO_Number=$so");
$stmt->execute();
$result = $stmt->get_result();
$row = $result->fetch_assoc();

print_r($row[SO_Number]);
$conn->close();
?>