PHP到MySQL的代码问题
我知道有很多关于MySQL和PHP的问题,但我似乎找不到一个足够简单的答案来理解该做什么和为什么 这是我的表单脚本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
<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错误