欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

PHP获得HTML表单数据无法写入MySQL数据库

程序员文章站 2024-02-12 11:53:58
...
mysql 数据库 表单 PHP入门,在尝试编写一个图书数据库,数据库写入有一些问题
总界面模块
			图书录入数据处理 - 藏书				
'; echo 'CIP 图书在版编目:' . $cip . '' . '

正书名:' . $title . '
副书名:' . $subtitle . '
丛书名:' . $series . '

'; $creator1loc = code2loc($creator_loc_id1); echo '

作者1:[' . $creator1loc . ']' . $creator_1 . '
'; $creator2loc = code2loc($creator_loc_id2); echo '作者2:[' . $creator2loc . ']' . $creator_2 . '

'; $publoc = code2loc($publoc_id); echo '

由' . $publoc . '的' . $publisher . '出版
'; $language = code2lang($lang_id); echo '此' . $language . '发行版本为' . $edit_date . '第' . $edit_no . '版 ' . $version_date . '第' . $version_no . '次印刷

'; echo '

关键词组1:' . $subj_key_1 . '?' . $subj_key_2 . '?' . $subj_key_3 . '
'; $clssys1 = code2clssys($clssys_id_1); echo '关键词组2:' . $subj_key_4 . '?' . $subj_key_5 . '?' . $subj_key_6 . '
'; $clssys1 = code2clssys($clssys_id_1); echo $clssys1 . '分类号:' . $class_no_1 . '
'; $clssys2 = code2clssys($clssys_id_2); echo $clssys2 . '分类号:' . $class_no_2 . '

'; $priceunit = code2punit($punit_id); echo '

价格 ' . $price . $priceunit . ' · 藏本数量 ' . $amount . ' · 相关图书ISBN ' . $rlt_isbn . '

'; echo '

备注信息' . $noteinfo . '

'; echo '

数据库写入信息

'; include 'insert.php'; /*载入写入数据库模块*/ ?>

Developed by SJHSTONE in 2014.


数据库连接模块(dbconnect.php)

数据写入模块(insert.php)

所有从$POST_[]全局变量引用的值都能在echo时正确显示,
能够正常连接并写入libr_metacode表中的13位ISBN、10位CIP数据,
但是无法写入接下来其他表中的数据。

先期涉及的三个表结构:
libr_metacode->meta_isbn char(13) 主键->meta_cip int(10)libr_title->meta_isbn char(13) 主键->title varchar(70)->subtitle varchar(50)->series varchar(30)libr_author (一对多)->rec_id int(5) 自动编号主键->creator varchar(30)->creatorloc_id int(3)


有兴趣的高手麻烦可以到 http://sjhstone.name/book/sandbox.rar看看源码提提建议,密码forcsdn(运行环境为本地Windows上的WampServer)

回复讨论(解决方案)

VALUES ('$isbn', '$cip')";

全都加转义
addslashes($isbn)
或者
mysql_real_escape_string($isbn)

把形如
or die('无法写入数据块1');
的改为形如
or die('无法写入数据块1' . mysqli_error($dbc));
的,就可知道问题在哪里了

VALUES ('$isbn', '$cip')";

全都加转义
addslashes($isbn)
或者
mysql_real_escape_string($isbn)

都是不需要转义的字符,而且只是在本地测试,暂时还用不着防注入……
不过谢啦!

把形如
or die('无法写入数据块1');
的改为形如
or die('无法写入数据块1' . mysqli_error($dbc));
的,就可知道问题在哪里了
这个纠错功能之前没看到过呢
顺带问一下哪里有参考性质的命令大全呢

一切都在 PHP手册 之中