MYSQL 5.5.32查询未在PHP中的远程数据库上运行

时间:2014-03-02 19:57:39

标签: php mysql sql

我有一个查询,我试图传递给远程数据库,并且语法似乎是正确的,因为我通过服务器端的SQL客户端运行它。查询从表单中获取数据,如下所示。

$query = 'INSERT INTO test_2 VALUES (\' \', $name, $address, $phone, $email, $state, $country, $zip)';
$query_run = mysql_query($query)

其中第一个值是自动增量ID /索引,所有变量都是使用HTML实体和mysql_real_escape_string构建的,如下所示。

$name = htmlentities(mysql_real_escape_string($_POST['your_name']));

这不是查询的原因吗?它似乎与语法一起运行,我甚至使用MSQL内置的PHP生成器来创建一个理想的PHP字符串。我觉得好像我没有正确地将变量传递给values参数。 ('',''等)可能就是这样吗?

另外,我知道mysql_real_escape_string已被弃用。使用更新的mysqli_real_escape_string()就像把i放在第一部分的末尾一样简单吗?

我使用的是MSQL V 5.5.32,我相信这个版本的语法是正确的。

1 个答案:

答案 0 :(得分:2)

尝试识别查询中的列名称,不包括自动增量列:

$query = "INSERT INTO test_2 (name, address, phone, email, state, country, zip) 
    VALUES ('$name', '$address', '$phone', '$email', '$state', '$country', '$zip')";

此外,您应该使用mysqli函数,因为不推荐使用mysql_函数。

您的查询的另一个问题是您在单引号字符串中使用变量,因此无法识别变量。