我有一个片段,试图将大量数据插入MySQL数据库。
$file = fopen($filename, "r");
while (($emapData = fgetcsv($file, 10000, ",")) !== FALSE)
{
$sql = "INSERT into universe (`zone`, `area`, `sub`) values('$emapData[0]','$emapData[1]','$emapData[2]')";
}
我尝试在插入之前“准备”数据并尝试进行消毒,
$file = fopen($filename, "r");
while (($emapData = fgetcsv($file, 10000, ",")) !== FALSE)
{
$sql = $conn->prepare ("INSERT into universe (`zone`, `area`, `sub`) values(?,?,?)");
$sql = bind_param("sss", '$emapData[0]','$emapData[1]','$emapData[2]');
}
这给了我一个错误:
未捕获的错误:调用未定义函数bind_param()
您在哪里以及如何建议我早些定义 bind_param ?谢谢。
答案 0 :(得分:1)
您离预期的结果不远。
bind_param()是mysqli_stmt类中的方法。您在进行$sql = $conn->prepare(...);
您要做的就是从$sql
对象中调用该函数。
顺便说一句,您不必将$emapData[x]
括在单引号中。
$sql = $conn->prepare("INSERT into universe (`zone`, `area`, `sub`) values(?, ?, ?)");
$sql->bind_param("sss", $emapData[0], $emapData[1], $emapData[2]);