【问题标题】:PHP MSQL FORM Query Won't ConnectPHP MYSQL FORM 查询无法连接
【发布时间】:2013-06-21 08:28:34
【问题描述】:

大家好,我一直在尝试编写代码,从 PHP 订单页面提交表单,以便它可以使用所需信息更新 MySQL 数据库

我在这里得到了订购 PHP 代码:

<form action="http://zim.cs.uow.edu.au/~ga420/order.php" method="post">
    <tr>
        <th>Shirts</th>
        <th>Quantity</th>
    </tr>
    <tr>
        <td>
            <br />
            <input type="checkbox" name="items" value="SH01" />
            <label for="rd1">Obey T-Shirt: $9.99</label>
            </div>
            <br />
            <input type="checkbox" name="items" value="SH02" />
            <label for="rd1">Obey Professor: $9.99</label>
            </div>
            <br />
            <input type="checkbox" name="items" value="SH03" />
            <label for="rd1">Hustle T-Shirt: $9.99</label>
            </div>
            <br />
            <input type="checkbox" name="items" value="SH04" />
            <label for="rd1">Hip-Hop Support: $9.99</label>
            </div>
            <br />
            <input type="checkbox" name="items" value="SH05" />
            <label for="rd1">90's Shirt: $9.99</label>
            </div>
            <br />
            <input type="checkbox" name="items" value="SH06" />
            <label for="rd1">DOPE Shirt: $9.99</label>
            </div>
            <br />
            <br />
        </td>
        <td>
            <br />
            <input type="text" name="qty" size="2" />
            <br/>
            <input type="text" name="qty" size="2" />
            <br/>
            <input type="text" name="qty" size="2" />
            <br/>
            <input type="text" name="qty" size="2" />
            <br/>
            <input type="text" name="qty" size="2" />
            <br/>
            <input type="text" name="qty" size="2" />
            <br/>
            <br />
        </td>
    </tr>
    <tr>
        <td>
            <br />
            <input type="checkbox" name="items[]" value="SO1" />
            <label for="rd1">Shoe - Red Lace: $19.99</label>
            </div>
            <br />
            <input type="checkbox" name="items[]" value="SO2" />
            <label for="rd1">Shoe - Red High Top: $19.99</label>
            </div>
            <br />
            <input type="checkbox" name="items[]" value="SO3" />
            <label for="rd1">Shoe - White: $19.99</label>
            </div>
            <br />
            <input type="checkbox" name="items[]" value="SO4" />
            <label for="rd1">Shoe - Black: $19.99</label>
            </div>
            <br />
            <input type="checkbox" name="items[]" value="SO5" />
            <label for="rd1">Shoe - Black High Top: $19.99</label>
            </div>
            <br />
            <input type="checkbox" name="items[]" value="SO6" />
            <label for="rd1">Red Basketball: $19.99</label>
            </div>
            <br />
            <br />
        </td>
        <td>
            <br />
            <input type="text" name="qty[]" size="2" />
            <br/>
            <input type="text" name="qty[]" size="2" />
            <br/>
            <input type="text" name="qty[]" size="2" />
            <br/>
            <input type="text" name="qty[]" size="2" />
            <br/>
            <input type="text" name="qty[]" size="2" />
            <br/>
            <input type="text" name="qty[]" size="2" />
            <br/>
            <br />
        </td>
    </tr>
    <tr>
        <td>
            <br />
            <input type="checkbox" name="items[]" value="SN1" />
            <label for="rd1">Snapback Bullets: $29.99</label>
            </div>
            <br />
            <input type="checkbox" name="items[]" value="SN2" />
            <label for="rd1">Snapback: $29.99</label>
            </div>
            <br />
            <input type="checkbox" name="items[]" value="SN3" />
            <label for="rd1">Snapback Bullets: $29.99</label>
            </div>
            <br />
            <input type="checkbox" name="items[]" value="SN4" />
            <label for="rd1">Snapback Bullets: $29.99</label>
            </div>
            <br />
            <input type="checkbox" name="items[]" value="SN5" />
            <label for="rd1">Snapback Bullets: $29.99</label>
            </div>
            <br />
            <input type="checkbox" name="items[]" value="SN6" />
            <label for="rd1">Snapback Bullets: $29.99</label>
            </div>
            <br />
            <br />
        </td>
        <td>
            <br />
            <input type="text" name="qty[]" size="2" />
            <br/>
            <input type="text" name="qty[]" size="2" />
            <br/>
            <input type="text" name="qty[]" size="2" />
            <br/>
            <input type="text" name="qty[]" size="2" />
            <br/>
            <input type="text" name="qty[]" size="2" />
            <br/>
            <input type="text" name="qty[]" size="2" />
            <br/>
            <br />
        </td>
    </tr>
    </tr>
    </table>
    <br />
    <input type="submit" name="submit">
</form>

<?php

if (isset($_POST['submit'])){

    $conn = mysql_connect('url','username','password');
    if (!$con){
        die("Could Not Connect: " . mysql_error());
    }

    mysql_select_db("db",$conn);

    $sql = "INSERT INTO Order_Information(Order_ID,Order_Items,Order_Quantity) VALUES (null,$_POST[items]','$_POST[qty]')";

    mysql_query($sql, $con);

mysql_close($con);
}

?>

显然我的用户名和密码我不会显示,但是当我点击提交按钮时它说它无法连接。

您可以在此网站上自己尝试该表格: http://zim.cs.uow.edu.au/~ga420/order.php

明明我已经输入了正确的细节,为什么却说我无法连接。

有人可以帮忙吗?这让我很紧张:'(

非常感谢您的帮助!

【问题讨论】:

  • 又好又容易的 sql 注入那个东西 ;)
  • 你写了$conn = mysql_connect('zim.cs.uow.edu.au','username','password'); - $conn with 2 "n"
  • @Joe 传递给 mysql_connect 的 mysql 主机关闭了 3306 端口(用 nmap 测试)。
  • @user1618490 你确定你的php代码可以连接到指定mysql主机的3306端口吗?你试过将'localhost' 传递给mysql_connect() 吗?
  • 还有一个小通知:VALUES (null,$_POST[items]','$_POST[qty]')"; - 重新检查'

标签: php mysql forms


【解决方案1】:

如果您在所有字段中都使用相同的名称“qty”,则需要序列化所有输入/数量。如果您没有得到关于此的答案,我将在稍后更新我的答案。

您的代码也有小错误,请注意:

VALUES (null,'$_POST[items]','$_POST[qty]')"; - 你在 $_POST[items] 之前缺少'

$conn = mysql_connect('zim.cs.uow.edu.au','username','password'); - 带有 2 个“n”的 $conn

所以,一个更正的版本是:

<?php

if (isset($_POST['submit'])){

$con = mysql_connect('url','username','password');
if (!$con){
    die("Could Not Connect: " . mysql_error());
}

mysql_select_db("db",$con);

$sql = "INSERT INTO Order_Information(Order_ID,Order_Items,Order_Quantity) VALUES (null,'$_POST[items]','$_POST[qty]')";

mysql_query($sql, $con);

mysql_close($con);
}

?>

【讨论】:

  • 这里没有意义 mysql_select_db("db",$conn);您的第一个连接变量是 $con。那么,为什么不使用这个 $conn 呢?
  • @Thiha 我只是忘记了那个,现在更正了我的答案。谢谢。
【解决方案2】:

改成这个。你在 $conn 和 $con 上犯了一些错误。然后,'$_POST[items]','$_POST[qty]' 在查询中。

if (isset($_POST['submit'])){

$conn = mysql_connect('url','username','password');
if (!$conn){
    die("Could Not Connect: " . mysql_error());
}

mysql_select_db("db",$conn);

$sql = "INSERT INTO Order_Information(Order_ID,Order_Items,Order_Quantity) VALUES      (null,'$_POST[items]','$_POST[qty]')";

mysql_query($sql, $conn);

mysql_close($conn);
}

希望有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-15
    • 1970-01-01
    • 1970-01-01
    • 2021-08-16
    相关资源
    最近更新 更多