没有插入文件?

时间:2014-06-18 19:46:56

标签: php

在以下代码中;在提交时,应插入" true&#34 ;;表Bot中的Enabled值;虽然它没有插入任何东西。这是我的代码;谢谢! 注意:我在提交时收到此错误:

  

警告:fwrite()要求参数2为字符串,在第12行的/home/induadmi/public_html/bot/index.php中给出数组

<?php
error_reporting(E_ALL); 
ini_set('display_errors', 1);
include "connect.php";
$filename = "status.txt";
$select = mysql_query("SELECT Enabled FROM Bot");
$val = mysql_fetch_assoc($select);
echo "<form method='post'><input type='submit' name='submit' value='Submit'></form>";
if(isset($_POST['submit'])) {
    $insertval=$val;
    $fp = fopen($filename,"a+");
    fwrite($fp,$insertval);
    fclose($fp);
    }
?>

2 个答案:

答案 0 :(得分:1)

<?php
    include "connect.php";
    $filename = "status.txt";
    $val = mysql_query("SELECT Enabled FROM Bot");
    if ($_POST['submit']) {
        $insertval=$val;
        $fp = fopen($filename,"a+");
        fwrite($fp,$insertval);
        fclose($fp);
        }
    echo "<form method='post'><input type='submit' name='submit' value='Submit'></form>";
?>

如前所述,使用PDO或mysqli。

另外,你真的很想澄清那个查询并给它一些where子句,并以一种在将它写入文本文件时不会变成垃圾的方式格式化你的输出。

以下是我如何使用类似写入文件的简单示例:

function logger($output) {
    $log = fopen('.\\UpdateLog.log', "a+");
    fwrite($log, date("Y-m-d H:i:s") . ':  ' . $output . "\r\n");
    fclose($log);
}

答案 1 :(得分:0)

请看一下mysql-fetch-assoc on php.netmysql_fetch_assoc会返回关联数组,fwrite需要字符串,如错误消息所示。

由于您查询“已启用”字段,因此应使用

之类的内容
fwrite($fp,$val['Enabled']);

PS 你应该考虑使用mysqli或PDO。