栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

SQLSTATE [HY093]:参数号无效:参数未定义

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SQLSTATE [HY093]:参数号无效:参数未定义

您收到的此错误:

SQLSTATE [HY093]:参数号无效:参数未定义

是因为

$values
&中的元素数
$matches
不相同或
$matches
包含1个以上的元素。

如果

$matches
包含多个元素,则插入操作将失败,因为query(
hash
)中仅引用了1个列名

如果

$values
$matches
不包含相同数量的元素,则由于查询期望x参数,但是插入正在接收y data,因此插入也会失败
$matches

我相信您还需要确保列哈希也具有唯一索引。

在这里尝试代码:

<?php$hostname = 'localhost';$username = 'root';$password = '';try {    $dbh = new PDO("mysql:host=$hostname;dbname=test", $username, $password);        echo 'Connected to database';    }catch(PDOException $e)    {    echo $e->getMessage();    }$matches = array('1');$count = count($matches);for($i = 0; $i < $count; ++$i) {    $values[] = '?';}// INSERT INTO DATAbase$sql = "INSERT INTO hashes (hash) VALUES (" . implode(', ', $values) . ") ON DUPLICATE KEY UPDATE hash='hash'";$stmt = $dbh->prepare($sql);$data = $stmt->execute($matches);//Error reporting if something went wrong...var_dump($dbh->errorInfo());?>

您将需要对其稍作调整。

我使用的表结构在这里:

CREATE TABLE IF NOT EXISTS `hashes` (  `hashid` int(11) NOT NULL AUTO_INCREMENT,  `hash` varchar(250) NOT NULL,  PRIMARY KEY (`hashid`),  UNIQUE KEY `hash1` (`hash`)) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

代码在我的XAMPP服务器上运行,该服务器使用PHP 5.3.8和MySQL 5.5.16。

我希望这有帮助。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/398819.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号