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

标签 php mysql prepared-statement

所以我有一个带有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 循环清空每个数组元素,并修复了它。

关于php - 在 php 准备好的语句中传递数组值不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59275549/

相关文章:

php - 使用 preg_split 返回整个字符串

java - 从 View 检索数据的查询不起作用

php - codeigniter 模型中的更新查询不起作用

php - 解析错误 : syntax error, 意外 '"',期望 '-' 或标识符 (T_STRING) 或变量 (T_VARIABLE) 或数字 (T_NUM_STRING) 在 PHP 中的第 17 行

php - 登录表单安全注意事项

php - 巩固重复模式

php - 为什么脚本在php中用此代码返回Error?

java - Tomcat中的PreparedStatement缓存

PHP 最佳实践 : Im loading the $GLOBALS array with a lot of information to be shared between my php pages

mysql 准备语句