使用 PHP 和 MySqli 将索引数组插入数据库

Inserting indexed array into an database with PHP and MySqli

我正在尝试使用 MySQLi 和 PHP 将索引数组的值插入到 SQL 数据库中,但我无法弄清楚为什么它不起作用。

$con = mysqli_connect("localhost","user","pword","db");
if (mysqli_connect_errno()) {
   echo "Unable to connect to MySQL! ". mysqli_connect_error();
   exit();
}

$sqli = "INSERT INTO path_info (path_name,operating_frequency,pi_description,pi_note) VALUES (?,?,?,?)";
$stmt= $con->prepare($sqli);
$stmt->bindParam("ssss",$csv[0],$csv[1],$csv[2],$csv[3]);
$status = $stmt->execute();
if (!$status) {
    echo "Error ".$stmt->errorCode()."\nMessage ".implode($stmt->errorInfo())."\n";
    exit(1);
}

问题在 bindParam

$stmt->bindParam(1,$csv[0]);
$stmt->bindParam(2,$csv[1]);
$stmt->bindParam(3,$csv[2]);
$stmt->bindParam(4,$csv[3]);

正确格式如上

也用try-catch

$con= new PDO("mysql:host=127.0.0.1;dbname=task", 'root', 'root');
$con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$csv = array('test', 15, 'testing', 'noted');
$sqli = "INSERT INTO path_info (path_name,operating_frequency,pi_description,pi_note) VALUES (?,?,?,?)";

$stmt= $con->prepare($sqli);
$stmt->bindParam(1,$csv[0]);
$stmt->bindParam(2,$csv[1]);
$stmt->bindParam(3,$csv[2]);
$stmt->bindParam(4,$csv[3]);
$status = $stmt->execute(); 
if (!$stmt) {
    echo PDO::errorInfo();
}

使用 mysqli 时是 bind_param。 使用 PDO 时是 bindParam。

<?php
    $con = mysqli_connect("localhost","user","pword","db");
    if (mysqli_connect_errno()) {
       echo "Unable to connect to MySQL! ". mysqli_connect_error();
       exit();
    }

    $sqli = "INSERT INTO path_info (path_name,operating_frequency,pi_description,pi_note) VALUES (?,?,?,?)";
    $stmt= $con->prepare($sqli);
    $stmt->bind_param("ssss", $csv[0],$csv[1],$csv[2],$csv[3]);
    $status = $stmt->execute();