sql语句在PHPMyAdmin可以执行,但是在php中执行不了
源码功能是:从学校新闻网抓取新闻的标题跟地址,然后保存到数据库
抓取的标题跟地址都可以正确echo出来,但是在保存到数据库过程中,只有地址能保存,标题保存不了
代码:
<?php //连接数据库 $con = mysql_connect(SAE_MYSQL_HOST_M.':'.SAE_MYSQL_PORT,SAE_MYSQL_USER,SAE_MYSQL_PASS);if(!$con){ die('could not connect:'.mysql_error()); }mysql_select_db(SAE_MYSQL_DB,$con); //获取新闻网内容 $con=file_get_contents("http://202.101.111.196/ptxyweb/news/list144_1.html"); $preg = '#<li><a href="(.*)" target="_blank"><font color="">(.*)</font></a></li>#iUs'; preg_match_all($preg,$con,$arr); //第一条新闻的地址以及标题 $yiurl="http://202.101.111.196".$arr[1][0]; $yititle=$arr[2][0]; //储存到数据库 $sql =" INSERT INTO ptunews(`id`,`title`,`url`) VALUES("","$yititle","$yiurl")"; mysql_query($sql); ?>
INSERT INTO ptunews(`id`,`title`,`url`) VALUES("","温馨团年宴,留校师生共享欢乐年(2015-2-18)","http://202.101.111.196/ptxyweb/news/201502/18/652.shtml")
数据库的结构:
初学者,求大神指点,谢谢啦。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(16)
我建议你改用PDO连接数据,然后用参数模式执行sql
看最后echo 出来的$sql不要看php的生成语句, 最后的sql才是关键. 看来你老人家也需要留神后槽牙了...
1.编码不对不会导致无法插入的 2.看生成的SQL文, 数据类型和长度都没什么问题
Thesday说得没啥错'“.$title.”'
1、检查编码。
2、检查标题的数据类型及长度是否够。
还以为是什么高人驾到, mysql 单引号和双引号都可以用都不知道?我笑了
$sql =" INSERT INTO ptunews(`id`,`title`,`url`) VALUES("","$yititle",
php是门卫教的? 双引号? mysql有双引号?
这都看不出问题.... !!!!! 我笑了.
回复
高人, 你慢慢笑, 注意点你的后槽牙, 别笑掉了, 人老了就剩下那么几颗, 要珍惜啊...
不要insert id进去, 因为你的id是主键而且是自增的.
其他的看不出什么问题.
有报错信息吗?
我换成自己的服务器之后,原代码运行,在数据库中是乱码,加上SET NAMES 'utf8',变成空的。
回复
你查看一下你的mysql服务器的log, 看看后台执行情况.一般情况下是不需要设置NAMES的.你看一下你要读取的网页是什么编码的.如果是gb2312之类的, 需要用iconv转换一下变成utf8然后保存就不是乱码了
连接mysql后执行一下
SET NAMES 'utf8'
是让你不标准的SQL语句可以正常执行的,是设置SQL解析为宽松模式的
引用来自“徐同乐”的评论
先执行sql_mode=“”;在执行你的sql语句试试
先执行sql_mode=“”;在执行你的sql语句试试