Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.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_Database_Forms - Fatal编程技术网

PHP到MySQL的代码问题

PHP到MySQL的代码问题,php,html,mysql,database,forms,Php,Html,Mysql,Database,Forms,我知道有很多关于MySQL和PHP的问题,但我似乎找不到一个足够简单的答案来理解该做什么和为什么 这是我的表单脚本 <form name="tickets" action="tickets98829849.php" method="get"> First Name: <input type="text" name="firstname"><br> Last Name: <input type="text" name="lastname"><b

我知道有很多关于MySQL和PHP的问题,但我似乎找不到一个足够简单的答案来理解该做什么和为什么

这是我的表单脚本

<form name="tickets" action="tickets98829849.php" method="get">
First Name: <input type="text" name="firstname"><br>
Last Name: <input type="text" name="lastname"><br><br>
Number of Tickets: <input type="text" name="quant"><br><br>
First and Last Name of Date: <input type="text" name="date"><br>
Date a guest? <input type="checkbox" name="guest" value="Yes">Yes<br><br>
Amount paid per ticket: <br><br>
$<input type="text" name="amount" size="2"><br>
<br><input type="submit" value="Submit"></form>

名字:
姓氏:

门票数量:

日期的名字和姓氏:
和客人约会?是

每张票支付的金额:

$

这是我的PHP脚本

    <?php

define('DB_NAME', 'ticketpurch');
define('DB_USER', 'dbuser');
define('DB_PASSWORD', 'dbpsswd');
define('DB_HOST', 'localhost');

$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD)

if (!$link) {
die('Could not connect: ' . mysqlerror());
}
$db_selectd = mysql_select_db(DB_NAME, $link);
if (!$db_selected) {
die('Can\'t use ' . DB_NAME . ': ' . mysqlerror());
}

$value1 = $_POST['firstname']
$value2 = $_POST['lastname']
$value3 = $_POST['quant']
$value4 = $_POST['datename']
$value5 = $_POST['guest']
$value6 = $_POST['amount']

$sql = "INSERT INTO $table ticketpurch (firstname, lastname, quant, datename, guest, amount) VALUES ('$value1', '$value2', '$value3', '$value4', '$value5', '$value6')";
$result = mysql_query($sql)

if (!mysql_query($sql)) {
die('Error: ' . mysql_error());
}

mysql_close();
>

表单的提交方法是get,但您的接收方法是post。更改它。

在您提到的形式中
method=“get”
将其更改为
method=“post”


它将起作用:)

从语句中删除$table。我假设正确的表是ticketpurch,所以您使用$table所做的只是混淆数据库。此外,其他答案也是正确的。表单的方法是“get”,但您正在使用$\u POST尝试获取数据。您应该将表单更改为post,因为get非常不安全,尤其是在涉及购买的情况下

此外,您正在使用不推荐使用的函数,如mysql\u connect。相反,使用PDO对象。请尝试以下操作,而不是mysql_connect()
$table = "mytable";
$sql = new PDO;
$sql->__construct(DB_NAME, DB_USER, DB_PASS);
$stmnt = $sql->prepare("INSERT INTO ticketpurch (firstname, lastname, quant, datename, guest, amount) VALUES ('$value1', '$value2', '$value3', '$value4', '$value5', '$value6')";
$sql->execute($stmnt);
这将确保您的语句更好地防止SQL注入

希望有帮助。

像这样试试

HTML代码

<form name="tickets" action="tickets98829849.php" method="post">
First Name: <input type="text" name="firstname"><br>
Last Name: <input type="text" name="lastname"><br><br>
Number of Tickets: <input type="text" name="quant"><br><br>
First and Last Name of Date: <input type="text" name="date"><br>
Date a guest? <input type="checkbox" name="guest" value="Yes">Yes<br><br>
Amount paid per ticket: <br><br>
$<input type="text" name="amount" size="2"><br>
<br><input type="submit" value="Submit"></form>

名字:
姓氏:

门票数量:

日期的名字和姓氏:
和客人约会?是

每张票支付的金额:

$

tickets98829849.php代码

<?php

define('DB_NAME', 'ticketpurch');
define('DB_USER', 'dbuser');
define('DB_PASSWORD', 'dbpsswd');
define('DB_HOST', 'localhost');

$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD)

if (!$link) {
die('Could not connect: ' . mysqlerror());
}
$db_selectd = mysql_select_db(DB_NAME, $link);
if (!$db_selected) {
die('Can\'t use ' . DB_NAME . ': ' . mysqlerror());
}

$value1 = $_POST['firstname']
$value2 = $_POST['lastname']
$value3 = $_POST['quant']
$value4 = $_POST['datename']
$value5 = $_POST['guest']
$value6 = $_POST['amount']

$sql = "INSERT INTO $table ticketpurch (firstname, lastname, quant, datename, guest, amount) VALUES ('$value1', '$value2', '$value3', '$value4', '$value5', '$value6')";
$result = mysql_query($sql)

if (!mysql_query($sql)) {
die('Error: ' . mysql_error());
}

mysql_close();
>

。它们不再得到维护。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果您选择PDO,.FYI,您也可以尝试使用form method=post而不是getIf这是您的完整代码,您没有将表名存储在$table变量中
获取任何PHP错误(例如,查询后缺少一个
),第二次使用
mysql\u查询($sql)或die(mysql\u error())
以获取查询中的SQL错误