[英]How to Insert unknown amount of HTML form fields into MySQL via PHP?
[英]PHP MySQL insert query via html form, parameters not going through
我尝试了每个版本的代码,但无法正常工作。 我有一个HTML表单,称为Post-PHP页面,可以在数据库中插入一些字段。 仅添加具有直接文本的字段,但是通过$_POST
参数$_POST
任何内容均为空-无论我进行了什么更改,都无法通过。
HTML格式:
<html>
<table><form method="post" action="input.php">
<tr><td>Post Title</td>
<td><input type="text" name="fdt_post_title" size="20"></td></tr>
<tr><td>Post URL</td><td><input type="text" name="fdt_post_url" size="40"></td></tr>
<tr><td>Post Description</td><td><input type="text" name="fdt_post_desc" size="40"></td></tr>
<tr><td>Post Title for FB</td><td><input type="text" name="fdt_post_title_fb" size="40"></td></tr>
<tr><td>Image URL</td><td><input type="text" name="fdt_image_url_fb" size="40"></td></tr>
<tr><td></td><td align="right"><input type="submit" name="submit" value="Submit"></td></tr>
</form></table>
</html>
input.php页面:
<?php
$dt_post_title = mysql_real_escape_string($_POST['$fdt_post_title']);
$dt_post_url = mysql_real_escape_string($_POST['$fdt_post_url']);
$dt_post_desc = mysql_real_escape_string($_POST['$fdt_post_desc']);
$dt_post_title_fb = mysql_real_escape_string($_POST['$fdt_post_title_fb']);
$dt_image_url_fb = mysql_real_escape_string($_POST['$fdt_image_url_fb']);
$link = mysql_connect("localhost","root","");//database connection
mysql_select_db("bighorn1_autoshare", $link);
$now = date();
//inserting data order
$order = "INSERT INTO topics
(id, title, url, description, facebook_post, facebook_image, facebook_pubstatus, date_published)
VALUES
(DEFAULT, '$dt_post_title', '$dt_post_url', '$dt_post_desc', '$dt_post_title_fb', '$dt_image_url_fb', '0', '$now')";
//declare in the order variable
$result = mysql_query($order, $link); //order executes
if($result){
echo("<br>Input data is succeed<br>");
} else {
echo("<br>Input data is fail<br>");
}
echo mysql_errno($link) . ": " . mysql_error($link) . "\n";
?>
在表中,字段id
是Primary, Not Null, Auto Increment
。 我所得到的是id
号增加到新行中的下一个, facebook_pubstatus
为0
, date_published as
0000-00-00 00:00:00`
--------------------------------------------------------------------------------------------------------------------------------
id | title | url | description | facebook_post | facebook_image | facebook_pubstatus | date_published |
--------------------------------------------------------------------------------------------------------------------------------
1 | | | | | | 0 | 0000-00-00 00:00:00 |
--------------------------------------------------------------------------------------------------------------------------------
2 | | | | | | 0 | 0000-00-00 00:00:00 |
--------------------------------------------------------------------------------------------------------------------------------
等等....
如果我更改为(DEFAULT, '$dt_post_title', '$dt_post_url' .... ") like (DEFAULT, 'test String 1',...... )
直接字符串, (DEFAULT, '$dt_post_title', '$dt_post_url' .... ") like (DEFAULT, 'test String 1',...... )
则此文本不会出现任何问题。
任何魔术都可以,谢谢。
同样在这部分上过分强调,我的大脑现在不知道日期是什么,为什么全为零。
谢谢
您的变量中有一个额外的“ $”符号。 更改为此:
$dt_post_title = mysql_real_escape_string($_POST['fdt_post_title']);
$dt_post_url = mysql_real_escape_string($_POST['fdt_post_url']);
$dt_post_desc = mysql_real_escape_string($_POST['fdt_post_desc']);
$dt_post_title_fb = mysql_real_escape_string($_POST['fdt_post_title_fb']);
$dt_image_url_fb = mysql_real_escape_string($_POST['fdt_image_url_fb']);
您需要将link_identifier传递给mysql_real_escape_string。 http://php.net/manual/zh/function.mysql-real-escape-string.php
MySQL连接。 如果未指定链接标识符,则假定使用mysql_connect()打开的最后一个链接。 如果找不到这样的链接,它将尝试创建一个链接,就好像没有参数调用mysql_connect()一样。 如果未找到或建立连接,则生成E_WARNING级错误。
返回转义的字符串,如果错误,则返回FALSE。
您现在可能会在每个变量中获取值“ false”。 尝试这种方式:
$link = mysql_connect("localhost","root","");//database connection
$dt_post_title = mysql_real_escape_string($_POST['fdt_post_title'], $link);
$dt_post_url = mysql_real_escape_string($_POST['fdt_post_url'], $link);
$dt_post_desc = mysql_real_escape_string($_POST['fdt_post_desc'], $link);
$dt_post_title_fb = mysql_real_escape_string($_POST['fdt_post_title_fb'], $link);
$dt_image_url_fb = mysql_real_escape_string($_POST['fdt_image_url_fb'], $link);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.