php 表单提交至数据库后出错求解
用dreamweaver写php,表单提交数据,并放到数据库中。下面是老师给的代码conn.php:<?php$hostname="localhost:3306";$da...
用dreamweaver写php,表单提交数据,并放到数据库中。
下面是老师给的代码
conn.php:
<?php
$hostname = "localhost:3306";
$database = "test";
$username = "root";
$password = "";
$conn = mysql_connect($hostname, $username, $password) or trigger_error(mysql_error() , E_USER_ERROR);
mysql_select_db($database, $conn);
$db = mysql_select_db($database, $conn) or die(mysql_error());
?>
--------------------------------------------------------------------------------
savenews:
<? include "conn.php" ?> <? //调用conn.php文件,用于连接到数据库 ?>
<?
$title=$_POST[title]; //这果申请一$title变量用于保存从add_news.php传过来的新闻标题title值.
$content=$_POST[content]; //同上,保存新闻内容值.
$add_time=date("Y-m-d");//这句话把获取到的系统当前时间赋给变量$add_time
$sql = "INSERT INTO news (title,content,add_time) VALUES ('$title','$content','$add_time')";
$result = @mysql_query($sql,$conn) or die(mysql_error()); //如果添加成功,返回真给$result ,否则为false.
if($result)
{ echo "添加新闻成功,<a href='add_news.php'>返回继续</a>";
}
else
{
echo "添加新闻失败,<a href='add_news.php'>请返回</a>";
}
?>
===============
结果最后浏览器都只输出:
这个错误原因到底是什么,小白跪求解答啊
wamp环境,360浏览器,数据库里的表已建好
蛋疼我把两个合到一个文件里了,至少还能报错了。我把sql句改成了这个:$sql = "INSERT INTO news (title,content,add_time) VALUES ('$title','asdfdsgfdhgfhfsdad','asdsfdg')";
报了这个错。。。。类型:title varchar200,content text,add_day varchar100
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 'a','asdfdsgfdhgfhfsdad','asdsfdg')' at line 1
求解这个是什么问题。。。 展开
下面是老师给的代码
conn.php:
<?php
$hostname = "localhost:3306";
$database = "test";
$username = "root";
$password = "";
$conn = mysql_connect($hostname, $username, $password) or trigger_error(mysql_error() , E_USER_ERROR);
mysql_select_db($database, $conn);
$db = mysql_select_db($database, $conn) or die(mysql_error());
?>
--------------------------------------------------------------------------------
savenews:
<? include "conn.php" ?> <? //调用conn.php文件,用于连接到数据库 ?>
<?
$title=$_POST[title]; //这果申请一$title变量用于保存从add_news.php传过来的新闻标题title值.
$content=$_POST[content]; //同上,保存新闻内容值.
$add_time=date("Y-m-d");//这句话把获取到的系统当前时间赋给变量$add_time
$sql = "INSERT INTO news (title,content,add_time) VALUES ('$title','$content','$add_time')";
$result = @mysql_query($sql,$conn) or die(mysql_error()); //如果添加成功,返回真给$result ,否则为false.
if($result)
{ echo "添加新闻成功,<a href='add_news.php'>返回继续</a>";
}
else
{
echo "添加新闻失败,<a href='add_news.php'>请返回</a>";
}
?>
===============
结果最后浏览器都只输出:
这个错误原因到底是什么,小白跪求解答啊
wamp环境,360浏览器,数据库里的表已建好
蛋疼我把两个合到一个文件里了,至少还能报错了。我把sql句改成了这个:$sql = "INSERT INTO news (title,content,add_time) VALUES ('$title','asdfdsgfdhgfhfsdad','asdsfdg')";
报了这个错。。。。类型:title varchar200,content text,add_day varchar100
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 'a','asdfdsgfdhgfhfsdad','asdsfdg')' at line 1
求解这个是什么问题。。。 展开
1个回答
推荐于2016-05-10
展开全部
你老师这样教学生的话, 可以说是在误人子弟!
刚学都那么偷懒, 巴不得一个网站就写一个字母就搞定是吧?
你开始的问题, 截的那张图来看, 好像是php没有被解析!
然后, 看你开头的是写的php短标签 <? 而不是长标签<?php
那么, 你确定你的php运行环境支持<?这种短标签吗???
接下来的问题, 错误提示你是sql语法有错误!
conn.php
<?php
//下面几个变量, 双引号内没有使用变量, 那就不要用双引号, 改用单引号, 有利于php程序运行效率, 新手都要养成一好习惯
$hostname = 'localhost'; //mysql默认端口是3306, 除非你改动了mysql端口, 否则没必要画蛇添足的加什么端口号
$database = 'test';
$username = 'root';
$password = '';
$conn = mysql_connect($hostname, $username, $password) or trigger_error(mysql_error() , E_USER_ERROR);
mysql_select_db($database, $conn) or die(mysql_error());
//$db = mysql_select_db($database, $conn); 上面已经选择数据库了, 没必要这里再选择一次, 更没必要赋值给变量 $db, 因为这个变量以后用不到了, 何必弄在哪里占个内存呢?
//下面的php结束标签页不要了, 因为你之后没有其他非php代码, 可以省略
<?php //这里用长标签, 因为长标签只要是支持php就支持, 但短标签不一定, 要配置php.ini才可以, 虽然大部分服务器都支持段标签, 但无非就多3个字母, 没必要冒险!
include 'conn.php';//调用conn.php文件,用于连接到数据库
//连续的php代码, 没必要弄好几个标签来分开, 可以接着写
//下面获取post数据, 最好是加上引号, 否则php会把title当做常量查找一次, 不利于优化, 这是大忌
$title = $_POST['title']; //这果申请一$title变量用于保存从add_news.php传过来的新闻标题title值.
$content = $_POST['content']; //同上,保存新闻内容值.
$add_time = date('Y-m-d');//这句话把获取到的系统当前时间赋给变量$add_time
$sql = "INSERT INTO `news` (`title`, `content`, `add_time` ) VALUES ('{$title}','{$content}','{$add_time}')"; //这里就可以用双引号了, 因为里面用了变量, 试php能解析变量
//尽量少用@这个错误抑止符, 因为这样开销会很大很大
$result = mysql_query($sql,$conn) or die(mysql_error()); //如果添加成功,返回真给$result ,否则为false.
echo $result ? '添加新闻成功,<a href="add_news.php">返回继续</a>' : '添加新闻失败,<a href="add_news.php">请返回</a>';
//上面是三元运算, 效果等同于 if( ) { } else { }, 但语法更简洁清晰!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询