我的相同脚本在另一个页面上运行,而同一页面上的其他查询使用相同的连接字符串。出于某种原因,当我运行“已填充”条件时,它说我的连接字符串为空。 “mysql_query() 期望参数 2 是资源,null given in...”然而,如果我运行“filled2”条件,它执行得很好。谁能看到我看不到的东西?
if (isset($_POST['filled'])) {
function updateRecords($varA,$varB,$varC){
$updateMyTable = "UPDATE myTable SET colA='$varA', colB=$varB WHERE colC = $varC";
if (!mysql_query($updateMyTable,$con)) {
die('Error 1: '. mysql_error());
}
}
if ( isset( $_POST['inputArray'] ) ) {
foreach ( $_POST['inputArray'] as $lilVars ) {
updateRecords($lilVars['inputA'],$lilVars['inputB'],$lilVars['inputC']);
}
}
} elseif (isset($_POST['filled2'])) {
$sqlAddRecord="INSERT INTO myTable (ColX, ColY, ColZ2) VALUES ($VarX,'$VarY',$VarZ)";
if (!mysql_query($sqlAddRecord,$con)) {
die('Error 2: '.mysql_error());
}
echo "New Record Added";
}
最佳答案
这是因为您在函数内部使用 $con。您需要在函数定义中包含“global $con”,以使其可用于全局范围内的函数。
function updateRecords(...) {
global $con;
...
}
关于php mySQL查询过程数组循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11585771/