1

我正在尝试使用 php 将带有变量的 MySQL 查询从 flex 传递到 MySQL。

这是 Flex 中的查询。一切似乎都是正确的。

mysqlQuery("INSERT INTO poc_note_test (first_name,last_name) VALUES ("+firstName+"," +lastName+")");

当查询通过 http 传递到我的服务器以由 PHP 处理时,它返回以下错误

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Test_Value )' at line 1

据我所知,它试图将最后的“)”作为值的一部分。我终生无法看到如何阻止这种情况发生。

这是用于处理出错的查询的 php。

$sql = $_REQUEST['sql'];
$result = mysql_query($sql);
$err = mysql_error();
$cols_count = mysql_num_fields($result) or error_log('Invalid query: ' .mysql_error());

任何帮助都感激不尽

这是传递查询的函数。也许问题就在这里?

public function mysqlQuery(sql:String,fid:String):void {

var http:HTTPService = new HTTPService;
var parm:Object = new Object;
parm.sql = sql;
parm.private_key = private_key;
parm.fas_db = mysql_db; 
http.url = mysql_url+"?irand="+Math.random();

http.showBusyCursor = true;
http.request = sql;
http.addEventListener(ResultEvent.RESULT, mysqlResult);
http.addEventListener(FaultEvent.FAULT, mysqlFault);
http.method = "POST";

sqlToken = http.send(parm);
sqlToken.param = fid;

}

4

2 回答 2

3

改变这个

mysqlQuery("INSERT INTO poc_note_test (first_name,last_name) VALUES ("+firstName+"," +lastName+")");

mysqlQuery("INSERT INTO poc_note_test (first_name,last_name) VALUES ('"+firstName+"','" +lastName+"')");

围绕'价值观

用于去除\

$result = mysql_query(stripslashes($sql));
于 2013-04-06T02:15:22.817 回答
0

改变成

mysqlQuery("INSERT INTO poc_note_test (first_name,last_name) VALUES ("+firstName+"," +lastName+")");

mysqlQuery("INSERT INTO poc_note_test (first_name,last_name) VALUES ('"+firstName+"','" +lastName+"')");

在 sql 中,字符串字符用单引号/双引号引起来。

于 2013-04-06T02:14:31.910 回答