Home  >  Article  >  Backend Development  >  请问一个PHP安装程序的小疑点

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

WBOY
WBOYOriginal
2016-06-13 13:18:16728browse

请教一个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('文件名'));
当然你也可以借助编辑软件,手工将 $ 替换成 \$

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn