繁体   English   中英

在php准备好的语句中传递数组值不起作用

[英]Passing array values in php prepared statement not working

所以我有一个带有 bind_param 的准备好的语句,如果我将每条数据分配给单独的变量并在 bind_param 语句中使用这些变量,它就可以正常工作,但是如果我将每条数据分配给一个数组元素并尝试使用,则它不起作用bind_param 语句中的数组元素。 下面的例子:

这有效: $insertquery->bind_param("sssssssssssssssssssss", $dbname, $dbmanacost, $dbcmc, $dbcolors, $dbtype, $dbsupertypes, $dbtypes, $dbsubtypes, $dbrarity, $dbcardtext, $dbflavortext, $dbartist, $dbnumber, $dbpower, $dbtoughness, $dblayout, $dbmultiverseid, $dbexpansion, $dbexpansioncode, $dbreleasedate, $dbversions);

但这会在数据库中插入一个空行: $insertquery->bind_param("sssssssssssssssssssss", $db['name'], $db['manacost'], $db['cmc'], $db['colors'], $db['type'], $db['supertypes'], $db['types'], $db['subtypes'], $db['rarity'], $db['cardtext'], $db['flavortext'], $db['artist'], $db['number'], $db['power'], $db['toughness'], $db['layout'], $db['multiverseid'], $db['expansion'], $db['expansioncode'], $db['releasedate'], $db['versions']);

两个示例中变量的内容完全相同。 我想将单个数组用于组织目的,但我不确定为什么准备好的语句不会读取数据。

问题是,每次我循环遍历时,我都会通过重新声明它来重置数组,例如 $db = array(...) 但显然这会断开与准备好的语句的链接。 我重写了代码以使用 foreach 循环将每个数组元素清空并修复它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM