卷曲,张贴/插入空值

问题描述:

任何人都可以建议我的脚本有什么问题吗? 这就是:卷曲,张贴/插入空值

#!/bin/sh 
url="http://myhost.mydomain/test.php" 
status=$(curl -s --head -w %{http_code} "$url" -o /dev/null) 
while read LINE 
do 
# 
#some stuffs here 
# 

if [ $status -eq 200 ] 
then 
    curl -H "Content-Type:application/json" \ 
    -XPOST "$url" --data '{"name":"'"$name"'","email":"'"$email"'","phone":"'"$phone"'"}' 
else 
    echo "Invalid Link." 
done < myFile.txt 

请看看实际的结果,当我发布(直接插入到数据库)。

 
ID Name Email    Phone 
1        0 
2 Anne [email protected]  112783 
3 Anne2 [email protected] 112784

正如你可以看到,它在ID 1发布空值。我怎样才能避免这种情况,其中没有不必要的空值会被添加/张贴在页面中?将不胜感激的任何帮助。谢谢。

+1

[$ status -eq 200]会调用test.php为空值。在test.php中,你需要检查$ _SERVER ['REQUEST_METHOD'] =='POST',如果$ _SERVER ['REQUEST_METHOD']!='POST'没有插入任何东西 – anhlc 2014-12-03 04:17:15

+1

我很难理解@ anhic的评论,尽管它基本上正确。 '状态'分配是第一次PHP调用发生的地方,但不是当您将结果状态与200比较时。 – tripleee 2014-12-03 07:12:43

+0

(1)我也不理解@ anhic的评论。 (2)'fi'丢失。 (3)为什么if-then-else在while循环中?如果'status'不是200,输出将只显示'无效的链接.' – Jdamian 2014-12-03 08:34:08

只要添加支票,如果$ name和$ email和$ phone变量都是非空的,那么怎么办?

if [ $status -eq 200 ] 
then 
    if [ -n "$name$email$phone" ] 
    then 
     curl -H "Content-Type:application/json" \ 
     -XPOST "$url" --data '{"name":"'"$name"'","email":"'"$email"'","phone":"'"$phone"'"}' 
    else 
     echo "Invalid data." 
    fi 
else