十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
?php
我们提供的服务有:成都网站建设、成都做网站、微信公众号开发、网站优化、网站认证、颍东ssl等。为1000多家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的颍东网站制作公司
$name=$_POST['user'];
$content=$_POST['post_contents'];
$conn=mysql_connect("localhost","admin","");
//做数据库连接判断
if(!$conn){
die("could not connect to the database:/br".mysql_error());//诊断连接错误
}
mysql_query("set names GB2312");//这里是names 不是 name
$db_selecct=mysql_select_db('gbook');//选择数据库
//选择库是不是成功了
if(!$db_selecct)
{
die("could not to the database/br".mysql_error());
}
//sql 语句中是字符串类型的外边要加单引号
$exec="INSERT INTO contents(name,content) VALUES('".$_POST['user']."','".$_POST['post_contents']."')";
$result=mysql_query($exec);
//这里是判断 $result 不是判断$exec;
if($result)
echo "添加留言成功,谢谢你的留言!" ;
else
echo "添加留言失败";
echo "pa href=index1.php center返回主页面/center/a";
mysql_close();
?
这个报错不是什么大问题,只是不良习惯造成的提示。关联数组应该使用如$_GET["name"]或者$_GET['name']这样的表示方法,虽然php会在无法找到$_GET[name]时会自动将其识别为$_GET中下标为“name”的数组元素,但是会提示你上面的Notice信息。因此,正确的做法是为关联数组加上单引或双引号。
下面是摘自PHP中文手册的解释:
为什么 $foo[bar] 错了?
应该始终在用字符串表示的数组索引上加上引号。例如用 $foo['bar'] 而不是 $foo[bar]。但是为什么 $foo[bar] 错了呢?可能在老的脚本中见过如下语法:
?php
$foo[bar] = 'enemy';
echo $foo[bar];
// etc
?
这样是错的,但可以正常运行。那么为什么错了呢?原因是此代码中有一个未定义的常量(bar)而不是字符串('bar'-注意引号),而
PHP 可能会在以后定义此常量,不幸的是你的代码中有同样的名字。它能运行,是因为 PHP 自动将裸字符串(没有引号的字符串且不对应于任何已知符号)转换成一个其值为该裸字符串的正常字符串。例如,如果没有常量定义为 bar,PHP 将把它替代为 'bar' 并使用之。
你老师这样教学生的话, 可以说是在误人子弟!
刚学都那么偷懒, 巴不得一个网站就写一个字母就搞定是吧?
你开始的问题, 截的那张图来看, 好像是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 { }, 但语法更简洁清晰!