使用 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();
我正在尝试使用 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();