【发布时间】:2023-03-05 06:58:01
【问题描述】:
我尝试了很多方法通过 localhost 将我的数组插入到我的 PHPmyAdmin 数据库中。到目前为止,没有一个工作过。我相信我可能将太多不同的解决方案混合在一起。我可能试图错误地插入 INT。
我的解决方案基于此参考:https://www.phpflow.com/php/insert-php-array-into-mysql-table/
$result = array( "0" => array(1, "blah", "blah", "blah", "blah", 2, 3),
"1" => array(2, "blah", "blah", "blah", "blah", 4, 5));
$connect = mysqli_connect("localhost", "root", "", "test");
if(is_array($result)){
foreach ($result as $row) {
$fieldVal0 = (int) $result[$row][0];
$fieldVal1 = mysql_real_escape_string($result[$row][1]);
$fieldVal2 = mysql_real_escape_string($result[$row][2]);
$fieldVal3 = mysql_real_escape_string($result[$row][3]);
$fieldVal4 = mysql_real_escape_string($result[$row][4]);
$fieldVal5 = (int) $result[$row][5];
$fieldVal6 = (int) $result[$row][6];
$query ="INSERT INTO testtable ( id, english, navajoVerb, person, mode, verbNum, bookNum) VALUES ( '". $fieldVal0."','".$fieldVal1."','".$fieldVal2."','". $fieldVal3."','".$fieldVal4."','".$fieldVal5."','".$fieldVal6."' )";
mysqli_query($connect,$query);
}
}
【问题讨论】:
-
对于初学者来说,您使用了错误的功能。 mysqli_query,您缺少“i”。
-
second
$row不是这里的索引,它是实际的行/数组。所以:$fieldVal0 = (int) $row[0];(等等..) -
第三:使用准备好的语句!它更省钱,您可以摆脱所有
$fieldVals - 至少为您节省 4 行容易出错的行。 -
第四:查看mysqli::error 看看出了什么问题
-
在我的例子中我应该把错误代码放在哪里?