php 表单提交至数据库后出错求解

发布网友 发布时间:2022-04-06 06:41

我来回答

1个回答

热心网友 时间:2022-04-06 08: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 { }, 但语法更简洁清晰!

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com