我有一个从一些测试数据创建的预构造数组,因为我还没有建立一个表单。该阵列是这样的:MySQL语法错误 - 数组查询
$ud = array('name' => 'name', 'username' => 'username', 'password' => 'password', 'location' => 'london', 'platform' => 'mobile', 'developer_or_designer' => 'developer', 'tags' => 'hello', 'paypal_email' => '[email protected]', 'developer_or_client' => 'developer', 'email' => '[email protected]');
foreach ($ud as $key => $value) {
$value = mysql_real_escape_string($value);
}
从这个数组,然后我试图通过一个MySQL查询的数据插入到我的数据库:
$query = mysql_query("INSERT INTO `Developers` (`Name`,`Email`,`Username`,`Password`,`Location`,`Platform`,`Developer_or_Designer`,`Tags`, `Paypal_Email`) VALUES (" . $ud['name'] . ", " . $ud['email'] . ", " . $ud['username'] . ", " .$ud['password'] . ", " . $ud['location'] . ", " . $ud['platform'] . ", " . $ud['developer_or_designer'] . ", " . $ud['tags'] . ", " . $ud['paypal_email'] . ")") or die(mysql_error());
但是,它与下面的错误死亡:
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 '@email.com, username, password, london, mobile, developer, hello, [email protected])' at line 1
请问你能告诉我哪里出错了吗?
请检查更新。 –
你仍然需要引号,'mysql_real_escape_string'的sanitize s输入,但不添加查询所需的引号以使查询有效 – Clive
另外,如果您希望'mysql_real_escape_string'有任何效果,您需要通过引用访问值:'foreach($ ud as $ key =>&$值){'... – Clive