PHP-执行sql查询时出现问题
当我试图在php脚本中执行查询时,我遇到了一个问题 当列的值为PHP-执行sql查询时出现问题,php,mysql,sql,Php,Mysql,Sql,当我试图在php脚本中执行查询时,我遇到了一个问题 当列的值为300时,我需要用'Validated'更新表中的所有列 实际上,查询正在运行,但似乎它会多次进行更新。 你能告诉我我的php脚本哪里做错了吗 这是我的剧本: 我设法解决了我的问题。将查询置于循环之外是解决方案 我是这样做的: $fields = mysqli_query($conn,'SHOW columns FROM '.$tablename.'AmpliconData'); //columns to exclude $col
<300
时,我需要用'QI'
更新表中的所有列;当>300
时,我需要用'Validated'
更新表中的所有列
实际上,查询正在运行,但似乎它会多次进行更新。你能告诉我我的php脚本哪里做错了吗 这是我的剧本:
我设法解决了我的问题。将查询置于循环之外是解决方案 我是这样做的:
$fields = mysqli_query($conn,'SHOW columns FROM '.$tablename.'AmpliconData');
//columns to exclude
$columns_to_exclude= array('Amplicon');
while($row = mysqli_fetch_array($fields))
{
$columns[]=$row['Field'];}
foreach($columns as $ind=>$val){
if(!in_array($val,$columns_to_exclude))
{
//$sqlAlterInt2Varchar='ALTER TABLE '.$tablename.'AmpliconData CHANGE '.$row['Field'].' '.$row['Field'].' VARCHAR(50) NULL DEFAULT NULL';
//mysqli_query($conn,$sqlAlterInt2Varchar);
$sqlQI='UPDATE '.$tablename.'AmpliconData SET '.$val.'="QI" WHERE '.$val.'<300;';
//echo $sqlQI.'<br/>';
mysqli_query($conn,$sqlQI);
$sqlVal='UPDATE '.$tablename.'AmpliconData SET '.$val.'="Validated" WHERE '.$val.'>300;';
echo $sqlVal.'<br/>';
mysqli_query($conn,$sqlVal);
}}
$fields=mysqli_query($conn,'SHOW columns FROM'.$tablename.'AmpliconData');
//要排除的列
$columns_to_exclude=数组('Amplicon');
while($row=mysqli\u fetch\u数组($fields))
{
$columns[]=$row['Field'];}
foreach($ind=>$val的列){
如果(!in_数组($val,$columns_to_exclude))
{
//$sqlAlterInt2Varchar='ALTER TABLE'.$TABLENAMPLICONDATA CHANGE'.$row['Field'..'..'.$row['Field'.'VARCHAR(50)NULL默认值NULL';
//mysqli_查询($conn,$sqlAlterInt2Varchar);
$sqlQI='UPDATE'.$tablename.'AmpliconData SET'.$val.='QI'其中'.$val.'300;';
echo$sqlVal.“
”;
mysqli_查询($conn,$sqlVal);
}}
“但它似乎进行了多次更新。”好吧,您已经将查询放在了一个循环中,所以每次循环运行时都会执行查询…@Epodax更新字段名,这不是一项通过php进行的危险工作吗。我将查询放在循环中,因为我获取了数组中的列名$row['field'代码>@Plum我不确定我是否明白了?他正在更新值,而不是列名。$sqlVal=“UPDATE”。$tablename。“AmpliconData SET”。$row[“Field”]。“=”Validated“其中,“$row[“Field”]。”>300;;//我想,如果我错了,不要开枪打我,但我认为sql希望“不要”
$fields = mysqli_query($conn,'SHOW columns FROM '.$tablename.'AmpliconData');
//columns to exclude
$columns_to_exclude= array('Amplicon');
while($row = mysqli_fetch_array($fields))
{
$columns[]=$row['Field'];}
foreach($columns as $ind=>$val){
if(!in_array($val,$columns_to_exclude))
{
//$sqlAlterInt2Varchar='ALTER TABLE '.$tablename.'AmpliconData CHANGE '.$row['Field'].' '.$row['Field'].' VARCHAR(50) NULL DEFAULT NULL';
//mysqli_query($conn,$sqlAlterInt2Varchar);
$sqlQI='UPDATE '.$tablename.'AmpliconData SET '.$val.'="QI" WHERE '.$val.'<300;';
//echo $sqlQI.'<br/>';
mysqli_query($conn,$sqlQI);
$sqlVal='UPDATE '.$tablename.'AmpliconData SET '.$val.'="Validated" WHERE '.$val.'>300;';
echo $sqlVal.'<br/>';
mysqli_query($conn,$sqlVal);
}}