使用PHP与SQL交互,我不断得到一个语法错误,我在早期的脚本中使用相同的代码(相当多)。 其代码产生错误如下:
$query = "INSERT INTO `child_table` (`id`, `url`, `uid`) VALES ('','".mysql_real_escape_string($value)."', '".$uid[0]."')";
$ex = execute_query($query);
其中返回"您的SQL语法中有错误;查看与您的MySQL服务器版本相对应的手册,以便在#1; VALES附近使用正确的语法(''''在第1行和第34行;
我现在不能想到我的生活,弄清楚为什么会这样......我认为我在这里愚蠢地错过了最简单的事情,但是当我插入其他3个表工作正常并且这个错误时我似乎无法找出原因:/
答案 0 :(得分:4)
你有 VALES ,但它应该是 VALUES
$query = "INSERT INTO
`child_table` (`id`, `url`, `uid`)
VALUES
('','".mysql_real_escape_string($value)."', '".$uid[0]."')";
$ex = execute_query($query);
您应该使用mysqli_或PDO代替!你可以使用mysqli_和PDO准备好的语句,这样更安全!
mysqli _的示例:
$db = new mysqli ("HOST","USER","PASS","DB");
$stmt = $db->prepare("INSERT INTO
`child_table` (`id`, `url`, `uid`)
VALUES
('',?,?)");
$stmt->bind_param('ss',$value,$uid[0]);
$stmt->execute();
假设url和uid是字符串,对于整数,使用i而不是bind_param中的s(例如)
答案 1 :(得分:2)
你必须写VALUES
而不是你的VALES
像这样:
$query = "INSERT INTO `child_table` (`id`, `url`, `uid`) VALUES ('','" . mysql_real_escape_string($value) . "', '" . $uid[0] . "')";
$ex = execute_query($query);