[英]how to insert data from a select box using php
将html select中的值插入mysql数据库时遇到了一个问题。 由于某种原因,我似乎无法插入值。 我一直在寻求帮助,但是他们总是给我错误。 另外,能不能告诉我mysql和mysqli有什么区别?
PHP代码
<?php
$con = mysql_connect("localhost","barsne","bit me");
if (!$con) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db("testing", $con);
$sql="INSERT INTO client_details (id, f_name, l_name, phone, email, job_est) VALUES
('', '$_POST[f_name]', '$_POST[l_name]', '$_POST[phone]', '$_POST[email]', '$_POST[job_est]')";
if (!mysql_query($sql,$con)) {
die('Error: ' . mysql_error());
}
echo "Thank you for booking a with us we will contact you in the next 24 hours to confirm your booking with a time and date";
mysql_close($con)
?>
HTML代码
<form method="post" action="processing_booking.php">
<h4><u>Basic Contact Details</u></h4>
<label>First Name</label>
<input type="text" name="f_name">
<label>Last Name:</label>
<input type="text" name="l_name" id="l_name">
<label>Phone Number:</label>
<input type="text" name="phone" id="phone">
<label>Email:</label>
<input type="text" name="email" id="email">
<h4><u>Job Details</u></h4>
<label>You Would Like To Book A:</label>
<select name="job_est">
<option value="select">--SELECT--</options>
<option value="job">Job</option>
<option value="est">Estimation</option>
</select>
<label>Service Your Booking:</label>
<select name="job_type">
<option value="select">--SELECT--</option>
<option value="gardening">Gardening</option>
<option value="landscaping">Landscaping</option>
<option value="painting">Painting & Decorating</option>
<option value="decking">Decking & Fencing</option>
</select>
<label>Any Additional Information </label>
<textarea name="extra_info"></textarea>
<input type="submit" value="lets get your dreams started">
</form>
对不起,哭泣不是我的强项
请注意,您错过了single quotations
$_POST['name']
你必须防止注射
// String Type Fields
$name = strip_tags($_POST['name']);
$f_name= strip_tags($_POST['f_name']);
$l_name= strip_tags($_POST['l_name']);
$phone= strip_tags($_POST['phone']);
$email= strip_tags($_POST['email']);
// Int Type Fields
if (isset($_POST['job_est']) && is_numeric($_POST['job_est']))
$job_est= $_POST['job_est'];
else
$job_est= 0;
然后在查询中使用
另一点是,如果您的id字段是主字段并且是自动递增字段,则可以按以下方式定义查询:
$sql="INSERT INTO client_details (f_name, l_name, phone, email, job_est) VALUES
( '".$f_name."', '".$l_name."', '".$phone."', '".$email."', ".$job_est.")";
对于字符串,必须使用'".$variable."'
对于整数或数字,必须使用".$variable."
另一点是,您必须将select元素更改为以下内容,因为您在注释中注意到您的job_est
字段类型为int(11)
<select name="job_est">
<option value="0">--SELECT--</option>
<option value="1">Gardening</option>
<option value="2">Landscaping</option>
<option value="3">Painting & Decorating</option>
<option value="4">Decking & Fencing</option>
</select>
不推荐使用mysql函数。 请改用mysqli或pdo类。
mysqli: https : //php.net/manual/zh/class.mysqli.php
创建一个var_dump($_POST)
,您将看到问题所在。 顺便说一句,您错过了单引号$_POST['value']
绝对不要在SQL查询中直接写入$ _POST或$ _GET数据。 务必始终对其进行验证,因为即使使用tampadata或chrome开发人员工具也可以轻松更改selectbox的值。
好了,您显然可以使用以下命令开始打印$ _POST数组的结果:
print_r($_POST,1);
检查其中是否存在所有变量
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.