我有一个查询,我正在尝试传递给远程数据库,当我通过服务器端的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,我相信此版本的语法是正确的。
尝试在查询中标识不包括自动增量列的列名:
$query = "INSERT INTO test_2 (name, address, phone, email, state, country, zip)
VALUES ('$name', '$address', '$phone', '$email', '$state', '$country', '$zip')";
此外,还应使用 mysqli
函数,因为 mysql_
函数已弃用。
查询的另一个问题是您在单个带引号的字符串中使用变量,因此无法识别变量。