【发布时间】:2011-04-15 15:45:30
【问题描述】:
我正在使用一个简单的表单并将我的文本框值提交到数据库,
<body>
<?php
if(isset($_POST["submit"]))
$des="Insert into enquiry(Companyname,Name,Phno,Email,Address,Comments) values
('".$_POST[txtcompname]."','".$_POST[txtname]."','".$_POST[txtphno]."',
'".$_POST[txtemail]."','".$_POST[txtaddress]."','".$_POST[txtcomments]."')";
$res1=mysql_query($des);
?>
<div align="left">
<form action="" method="post">
但它似乎没有被提交?任何建议
当我使用print_r($_POST); 时,我得到了
Array ( [txtcompname] => xv [txtname] => xcv [txtphno] => xcvx [txtemail] => xcv [txtaddresss] => xcv [txtcomments] => xcvxcv [submit] => submit )
我现在收到此错误,
You have an error in your SQL syntax; check the manual that corresponds to
your MySQL server version for the right syntax to use near 'Address,Comments)
values ('zdc','sadcv','zdsv', 'sdcv','sdvcsdv','sdcv')' at line 2
【问题讨论】:
-
print_r($_POST);得到什么? -
您确定有
submit元素提交到表单吗?你真的应该这样做:if($_POST){ }这会给你同样的结果。 MySQL 也应该大写。有没有 mysql_error 呢?将$res1=mysql_query($des);更改为$res1 = mysql_query OR die(mysql_error()); -
没关系。您的表格已提交。你有什么错误吗?
-
一个非常重要的注意事项:此代码非常不安全,因为您似乎没有以任何方式验证或转义 POST 数据。这很容易受到 SQL 注入的影响,这意味着有人可以擦除或查看您的整个数据库。我知道您仍在研究基础知识,但您必须在将要插入的每个值上运行此函数:php.net/manual/en/function.mysql-real-escape-string.php,然后再将其放入查询中。另外,查看参数化查询。