【发布时间】:2017-02-10 17:48:34
【问题描述】:
我想将以下数据保存到 MySQL 数据库中。
以下代码向我显示了两个警告
1- 非法的字符串偏移。
2- 只有变量可以通过引用传入。
请帮忙。
$db = new PDO('mysql:host=localhost;dbname=whois;charset=utf8mb4', 'root', '');
$items = array(
'Domain Name:' => 'domain.name',
'Domain ID:' => 'domain.handle',
'Sponsoring Registrar:' => 'domain.sponsor',
'Registrar ID:' => 'domain.sponsor',
'Domain Status:' => 'domain.status.',
'Status:' => 'domain.status.',
'Name Server:' => 'domain.nserver.',
'Nameservers:' => 'domain.nserver.',
'Maintainer:' => 'domain.referer',
);
$stmt = $db->prepare("INSERT INTO temdata VALUES(?,?,?,?,?,?,?,?,?)");
foreach ($items as $row) {
$stmt->bindParam(1, $row['domainname']);
$stmt->bindParam(2, $row['domainid']);
$stmt->bindParam(3, $row['registrar']);
$stmt->bindParam(4, $row['registrarid']);
$stmt->bindParam(5, $row['domainstatus']);
$stmt->bindParam(6, $row['status']);
$stmt->bindParam(7, $row['server']);
$stmt->bindParam(8, $row['nameservers']);
$stmt->bindParam(9, $row['maintainer']);
$stmt->execute();
}
【问题讨论】:
-
让我们从这个开始。
$row不是数组,而是一个值。所以$row['domainname'],$row['domainid'],……都错了。 -
如果你使用命名参数,在费心加载数据数组之后,这可能会容易很多
-
现在它向我显示致命错误:调用未定义的方法 PDOStatement::bind_param()
-
让我们从头开始。您使用的是 PDO 还是 MYSQLI_ 数据库扩展
-
$db = new PDO('mysql:host=localhost;dbname=whois;charset=utf8mb4', 'root', '');