First Name: Middle -6ren">
gpt4 book ai didi

PHP-Mysql 查询

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

我对正确的查询脚本有疑问..

我在 page1.php 中创建了一个表单,用户必须在其中输入 fname、mname 和 lname。

page1.php

<form action = "page2.php" method="post" target="<?php $_SERVER['PHP_SELF']?>">

First Name:<input type="text" name="fname"/>
Middle Name:<input type="text" name="mname"/>
Last Name:<input class = "type="text" name="lname"/>

<input type="submit" name="submit" value="NEXT" />
</form>

条目被发送到 page2.php 以插入到数据库中。处理成功后。我在成功插入值后放置了一个条件,它会自动转到 page3.php。

page2.php

<?php

include('config.php');

if(isset($_POST['submit']))
{
$fname = ucwords(strtolower($_POST['fname']));
$lname = ucwords(strtolower($_POST['lname']));
$mname = ucwords(strtolower($_POST['mname']));



$submit=$_POST['submit'];

if(empty($fname) || empty($lname) || empty($mname))
{
echo '<b>Please fill out the form completely.</b>';
}

else
{
$dup = mysql_query("SELECT *
FROM
tbl
WHERE
fname = '$fname'
AND
lname = '$lname'
AND
mname = '$mname'
");

if(mysql_num_rows($dup) >0)
{
echo "<br/>";
echo '<b>Already Registered.</b>';
echo "<br/>";
}

else
{
$sql = mysql_query("INSERT INTO tbl(fname,lname,mname) VALUES('$fname','$lname','$mname')");
if($sql)
{
echo "<br/>";
echo "You have successfully added your new name!";
echo "<br/>";
header("Location: page3.php?fname= $fname&mname= $mname &lname= $lname");
}
else
{
echo "Error Registration";
header("Location: index.php");
}
}
}

}

?>

这些值还将被以下内容继承:

header("Location: page3.php?fname= $fname&mname= $mname &lname= $lname");

它位于:

之后
$sql = mysql_query("INSERT INTO tbl(fname,lname,mname)VALUES('$fname','$lname','$mname')");

然后转到下一页。

在page3.php中,为了验证我仍然拥有我使用的值:

echo '<pre>' . print_r($_GET,true) . '</pre>';

我还留着它们。

现在,在 page3.php 中,我想调用在成功插入 page2.php 中的值后创建的 auto_incremented ID。

<?php

echo '<pre>' . print_r($_GET,true) . '</pre>';

include('config.php');

$fname = $_GET['fname'];
$mname = $_GET['mname'];
$lname = $_GET['lname'];

$sql = mysql_query("SELECT * FROM tbl WHERE fname = '$fname' AND mname = '$mname' AND lname = '$lname'");

while ($row = mysql_fetch_array($sql))
{
echo $row['id'];
}
?>

现在的问题是我的查询没有结果。当我尝试这个脚本时:

$sql = mysql_query("SELECT * FROM tbl");

我有结果显示。

我想做的是这样的,我希望条件全部满足,即fname,mname,lname。必须满足这 3 个字段,以便我可以从专门包含这些字段的表中获取指定的 ID。就像您查询您的全名并获取您的 ID 一样。您应该插入所有 3 个字段才能获取该给定名称的准确 ID。

我的问题可能出在这里:

$sql = mysql_query("SELECT * FROM tbl WHERE fname = '$fname' AND mname = '$mname' AND lname = '$lname'");

while ($row = mysql_fetch_array($sql))
{
echo $row['id'];
}

这就像你让 John Rogers Smith 然后从数据库中找出你的 ID。

你能帮我吗?我不明白为什么它不起作用。

提前告诉大家。

最佳答案

请检查您所做的每一步,因为表单已经有错误

Last Name:<input class = "type="text" name="lname"/>

需要

Last Name:<input class="" type="text" name="lname"/>

而且你的查询方式并不安全,很容易进行sql注入(inject)。

我还建议您使用sprintf() ,例如:

$s_query = sprintf("SELECT * FROM `x` WHERE `x`.`x_name` = '%s'", $x_name);

你应该选择 mysqli而不是 mysql。

下次总是打印出每个步骤,使用 print_r()打印 $_GET 和 $_POST 等数组

关于PHP-Mysql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21748595/

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