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

请问一个PHP安装程序的小疑点

程序员文章站 2024-02-06 14:08:52
...
请教一个PHP安装程序的小问题
我写一个PHP安装程序 想通过这个页面直接生成数据库
我将SQL语句分别赋值到数组里
$sql[]="create table a ...";
$sql[]="create table b ...";
$sql[]="create table c ...";
然后用foreach循环执行
foreach($sql as $val)
{
mysql_query($val);
}

--------------------------------------------------
上面建库没什么问题

然后我希望在程序安装的时候附上一些初始数据 也就是加几篇文章
我同样把insert语句写到了$sql[]中
但是文章嘛 比较长 而且文章是代码类的 很容易起冲突 一直不成功 所以...来请教一下

------解决方案--------------------
冲突原因是没有做如下转义:

$article = "i'm john";
$sql = "insert into articles values('" . addslashes($articles) . "')";
------解决方案--------------------
你最好将遇到的错误信息贴出来。要不然无解。
mysql_query($val) or die(mysql_error()); //改成这样
------解决方案--------------------
赋值不到数组是什么意思? 我猜多半都是跟你的单双引号有关吧
------解决方案--------------------
语句复杂可对语句进行转义,特别是里面有单双引号会造成冲突
楼上都说了,对于赋值不了等问题要给出更专业的问题说明
例如报的错误是什么,调试也是解决问题最重要的一步,
没有错误,想方设法让错误输出来,有了错误就找到了问题所在
------解决方案--------------------
你 #4 的 SQL 指令中由于含有 php 变量的表示,比如 $words[]
所以要处理后才能放到数组中
1、如果是 php5.3以上,那么比较简单,只需
$sqls[] =sql指令
SQL;

2、否则你需要将每句 SQL 指令单独保存到文本文件
然后用程序组装起来
$sqls[] = str_replace('$', '\$', file_get_contents('文件名'));
当然你也可以借助编辑软件,手工将 $ 替换成 \$
请问一个PHP安装程序的小疑点

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频