我尝试了每个版本的代码,但它无效。我有一个HTML表单调用Post-PHP页面在数据库中插入几个字段。只有具有直接文字的字段才会添加,但通过$_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',...... )
中的直接字符串,则此文本不会出现任何问题。
任何神奇的感谢,谢谢。
同样强调这一部分,我的大脑现在没有弄清楚约会的原因,为什么全部为零。
由于
答案 0 :(得分:3)
你有额外的&#39; $&#39;登录你的变量。改为:
$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']);
答案 1 :(得分:2)
您需要将link_identifier传递给mysql_real_escape_string。 http://php.net/manual/en/function.mysql-real-escape-string.php
MySQL连接。如果未指定链接标识符,则假定mysql_connect()打开的最后一个链接。如果没有找到这样的链接,它将尝试创建一个,就好像没有参数调用mysql_connect()一样。如果未找到或建立连接,则会生成E_WARNING级别错误。
返回转义字符串,如果出错则返回FALSE。
你可能正在获得价值&#34; false&#34;在你的每个变量中。 试试这种方式:
$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);