我正在尝试使用数据库触发器和过程发送短信我创建了表格,我可以通过以下方式插入数据:
use sms;
INSERT INTO sms_out (id, sender,receiver,msg)
VALUES ('','MyName','25578200000',"test");
我创建了触发器;
use sms;
CREATE TRIGGER push_message_trigger AFTER INSERT ON sms_out
FOR EACH ROW
CALL push_message(NEW.sender, NEW.receiver, NEW.msg);
我创建了程序as;
use sms;
DELIMITER $$
CREATE PROCEDURE push_message
(p1 TEXT,
p2 DOUBLE,
p3 TEXT)
BEGIN
DECLARE cmd CHAR(255);
DECLARE result CHAR(255);
SET cmd = CONCAT('curl "http://www.sms.co.tz/api.php?do=sms&username=Myusername&password=MyPassword&senderid=MyName&dest=25571500000&msg=test"');
SET result = sys_eval(cmd);
END$$;
以上不起作用,但如果我更换
SET cmd = CONCAT('curl "http://www.sms.co.tz/api.php?do=sms&username=Myusername&password=MyPassword&senderid=MyName&dest=25571500000&msg=test"');
使用
SET cmd = CONCAT('touch /var/lib/mysql/Advo');
它有效!!
卷毛怎么了?
答案 0 :(得分:0)
我猜问题不是curl字面是你如何使用mysql CONCAT功能。
要连接字符串,您应该执行类似的操作(如果您不使用逗号,则不是串联字符串):
CONCAT(str1,str2,....);
似乎问题是引号,试图逃避这样的双引号\"
* 如果您希望别人知道实际发生了什么,请显示错误