我有这个 PHP 脚本:
<?php
if($_GET["name"] != null && $_GET["name"] != ""){
$name = urlencode($_GET["name"]);
$name = htmlentities($name);
$title = urlencode($_GET["title"]);
$title = htmlentities($title);
$art = urlencode($_GET["art"]);
$art = htmlentities($art);
$output = array();
exec("python add.py $name $title $art",$output);
}
?>
这是 add.py 文件:
import sys
import sqlite3
name = sys.argv[1]
title = sys.argv[2]
art = sys.argv[3]
tup = (name,title,art)
conn = sqlite3.connect('arts.db')
c = conn.cursor()
c.execute('CREATE TABLE IF NOT EXISTS arts(name,title,art)')
c.execute('INSERT INTO arts VALUES(?,?,?)',tup)
conn.commit()
conn.close()
当文件运行时,我的当前目录中没有 Arts.db 文件。不仅如此,当我通过到处添加打印语句来调试我的程序时,我意识到我的程序一直运行到conn = sqlite3.connect('arts.db')
然后在语句执行之前退出。
我的程序没有错误,因为我在终端中使用了 python 编辑器(我使用 Ubuntu),然后我可以成功执行这个程序,但是当我从 PHP 脚本执行它时不会发生这种情况。