很抱歉再次受到打扰,但是我的编码似乎面临着一些麻烦。 出于某种原因,我出现以下错误:
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 ' '', 'No Subject', 0, 'Jul 8, 2013 09:33 PM', 0)' at line 1
每当我执行以下命令时:
$date_posted=date("M j, Y h:i A", TIME());
$sent_to=$_POST["member_id"];
$sent_by=$_SESSION["member_id"];
$subject=addslashes($_POST["subject"]);
if($subject==Null)
{
$subject="No Subject";
}
$subject=verify_data($subject);
$message=addslashes($_POST["message"]);
$message=verify_data($message);
$sql="insert into main";
$sql.="(member_id";
$sql.=", mail_to";
$sql.=", mess_text";
$sql.=", subject";
$sql.=", deleted";
$sql.=", date_posted";
$sql.=", mess_read)";
$sql.=" values($sent_by";
$sql.=", $sent_to";
$sql.=", '$message'";
$sql.=", '$subject'";
$sql.=", 0";
$sql.=", '$date_posted'";
$sql.=", 0)";
$result=mysql_query($sql);
print mysql_error();
if($result)
{
print "<font color='red'>Message sent successfully.</font>";
}
else
{
//print "<font color='red'>A system error has happened, be patient.</font>";
}
如果我是正确的,问题应该在编码值或POST函数本身,问题是,我已经从_POST更改为HTTP_POST_VARS,并没有太多帮助。
虽然我会说邮件的MYSQL值如下:
member_id type int(11)
mail_to type int(11)
mess_text type blob
deleted type int(11)
subject type blob
date_posted type varchar(255)
mess_read type int(11)
结果:echo $ sql:
insert into mail(member_id, mail_to, mess_text, subject, deleted, date_posted, mess_read) values(2, , '', 'No Subject', 0, 'Jul 8, 2013 09:43 PM', 0)
如果你能帮助我解决这个问题,那么我们非常感激。 这个社区不仅为像我这样的初学者提供了很大的支持,也为那些有时需要努力的专家提供了很大的支持。
答案 0 :(得分:1)
表单元素必须有name
才能在表单提交时访问它们。所以为了使用 -
$sent_to=$_POST["member_id"];
你必须有一个看起来像这样的元素 -
<input name="member_id" />
在使用JQuery作为示例时,通常只包含id -
是很常见的<input type="hidden" id="project-id" /> // from the autocomplete source code example
这适用于javascript / JQuery,因为您正在使用id
,但在php中您需要添加名称 -
<input type="hidden" id="member_id" name="member_id" />
答案 1 :(得分:0)
如果您的$sent_to
或$sent_by
变空,则会失败。基于您发布的SQL字符串,似乎$ sent_to为空,要么检查以确保该值存在,要么在值周围加上单引号,以便您可以将空值传递给数据库,
答案 2 :(得分:0)
$ sent_to =(isset($ _POST [“member_id”])&amp;&amp; $ _POST [“member_id”]!='')? $ _POST [“member_id”]:'';
或
$ sent_to =(isset($ _POST [“member_id”])&amp;&amp; $ _POST [“member_id”]!='')? $ _POST [“member_id”]:null; //如果它接受null
- 编辑---
mail_to可以接受int
所以,
$ sent_to =(isset($ _POST [“member_id”])&amp;&amp; $ _POST [“member_id”]!='')? $ _POST [“member_id”]:0; //它可以是零或任何你想要的默认值
答案 3 :(得分:0)
Here $sent_to is blank so there is a error
check for the $_POST["member_id"] value.
AND
$sql="insert into main";
$sql.="(member_id";
$sql.=", mail_to";
$sql.=", mess_text";
$sql.=", subject";
$sql.=", deleted";
$sql.=", date_posted";
$sql.=", mess_read)";
$sql.=" values($sent_by";
$sql.=", $sent_to";
$sql.=", '$message'";
$sql.=", '$subject'";
$sql.=", 0";
$sql.=", '$date_posted'";
$sql.=", 0)";
$result=mysql_query($sql);
TO
$sql="insert into main";
$sql.="(member_id";
$sql.=", mail_to";
$sql.=", mess_text";
$sql.=", subject";
$sql.=", deleted";
$sql.=", date_posted";
$sql.=", mess_read)";
$sql.=" values('$sent_by'";
$sql.=", '$sent_to'";
$sql.=", '$message'";
$sql.=", '$subject'";
$sql.=", 0";
$sql.=", '$date_posted'";
$sql.=", 0)";
$result=mysql_query($sql);
答案 4 :(得分:0)
<?php
/*$db_host='localhost';
$db_user='root';
$db_pass='';
$db_name='example';*/
$dbc = mysql_connect("localhost","root","admin123") or die('Connection to database failed');
mysql_select_db("example",$dbc);
//$fname =$_POST['first_name'];
//$lname =$_POST['last_name'];
$sql="INSERT INTO table(first_name,last_name) VALUES('Prashant','Bhatta')";
mysql_query($sql,$dbc) or die (mysql_error());
?>