我正在开发票务系统(Osticket),使用最新版本的XAMPP(PHP 7.2.7)安装我的环境,并完成了项目,一切正常。
当我在手动安装的php上测试我的代码时,mysql票务系统工作正常,而新添加的代码的一部分工作正常。
不起作用的是mysqli:
query: "INSERT INTO scan_files(file_name , sha256 , result , ticket_number ,
topic , topic_id) VALUES ('$file_name' , '$hash_of_file' , '1'
,'$get_ticket_id' , '$topicNum' , '$topicID')"
同样fopen功能不起作用:
file_put_contents('/srv/http/ost/scan/apires.txt',
print_r($api_reply_array['positives'], true));
$myfile = fopen("/srv/http/ost/scan/newfile.txt", "w") ;
$txt = "John Doe\n";
fwrite($myfile, $txt);
$txt = $hash_of_file . "\n";
fwrite($myfile, $txt);
$txt = $api_reply_array['positives'] . "\n";
fwrite($myfile, $txt);
$txt = $file_name . "\n";
fwrite($myfile, $txt);
fclose($myfile);
我授予文件夹权限并授予我的代码权限。 我认为需要一些模块。
在xampp环境下一切正常,但是手动安装php和mysql时出现问题。
php版本是7.2.8
mysql版本为Server版本:10.1.34-MariaDB-MariaDB服务器
答案 0 :(得分:0)
用给定的描述识别确切的问题非常困难。
但是,您可以将以下行添加到PHP代码的顶部以启用错误报告,从而确定确切的问题。
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
PS:要同时启用解析错误,请编辑php.ini文件并添加
display_errors = on
答案 1 :(得分:-1)
对于您的MySQL问题,可能是列与实际的SQL模式不匹配,或者表不存在,或者您的一个或多个PHP变量没有值,但是您的模式已设置禁止使用空字段值。
话虽如此,我强烈建议您在与数据库交互时使用准备好的语句。
使用fopen issue
可能是文件权限问题或路径不存在。即file_put_contents
不会为您创建目录结构。