我在PHP工作.
请问将新记录插入到具有唯一字段的DB中的正确方法是什么.我正在批量插入大量记录,我只想插入新的记录,我不希望重复条目有任何错误.
有没有办法首先进行SELECT并查看INSERT之前是否已经存在该条目 - 并且只有当SELECT不返回记录时才进行INSERT?我希望不是.
我想以某种方式告诉MySQL忽略这些插入而没有任何错误.
谢谢
我是新手在php中使用mysql中的预处理语句.我需要一些帮助来创建一个准备好的语句来检索列.
我需要从不同的列中获取信息.目前,对于测试文件,我使用完全不安全的 SQL语句:
$qry = "SELECT * FROM mytable where userid='{$_GET['userid']}' AND category='{$_GET['category']}'ORDER BY id DESC"
$result = mysql_query($qry) or die(mysql_error());
Run Code Online (Sandbox Code Playgroud)
有人可以使用来自url参数(如上所述)的输入来帮助我创建一个安全的 mysql语句吗?
奖励:准备好的陈述也可以提高速度.如果我只在页面上使用三到四次准备好的声明,它会提高整体速度吗?
我正在寻找一种SQL注入安全技术,用PHP和MySQLi一次插入大量行(约2000).
我有一个包含所有必须包含的值的数组.目前我正在这样做:
<?php
$array = array("array", "with", "about", "2000", "values");
foreach ($array as $one)
{
$query = "INSERT INTO table (link) VALUES ( ?)";
$stmt = $mysqli->prepare($query);
$stmt ->bind_param("s", $one);
$stmt->execute();
$stmt->close();
}
?>
Run Code Online (Sandbox Code Playgroud)
我尝试了call_user_func_array(),但它导致了stackoverflow.
有什么更快的方法可以做到这一点(比如一次插入所有这些?),但仍然可以防止SQL注入(如预处理语句)和stackoverflows?
谢谢!