• 技术文章 >后端开发 >php教程

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

    2016-06-13 10:38:08原创206
    请教一个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指令
    SQL;

    2、否则你需要将每句 SQL 指令单独保存到文本文件
    然后用程序组装起来
    $sqls[] = str_replace('$', '\$', file_get_contents('文件名'));
    当然你也可以借助编辑软件,手工将 $ 替换成 \$
    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:quot SQL create mysql table
    上一篇:Linux上PHP5.4的奇怪有关问题 下一篇:一段PHP在地址栏的汉语传值出现乱码
    大前端线上培训班

    相关文章推荐

    • 推荐一本PHP程序猿都应该拜读的书_PHP• Thinkphp关闭缓存的方法_php实例• PHP命名空间(Namespace)的使用详解_php实例• php.ini设立全攻略

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网