我有一个基本的Update查询:
$sql = "UPDATE `$row[2]` SET `gebuchtvon` = \"$neugebuchtvon\" WHERE `id` = $row[0]";
如果我将sql粘贴到phpmyadmin的sql字段中,则该sql很好,但由于某些原因,它在PHP文件中不起作用。
我在另一个文件中使用了几乎相同的语法,在该文件中它可以完美工作。
此外,我读到它可能不起作用,因为未满足WHERE语句,但这不是问题,因为正如我所说,如果将其粘贴到SQL字段中,它将起作用。
希望有人能帮助我,在此先感谢:)
$sql = "SELECT `id`,`gebuchtvon`,'montag' as tag FROM `montag` WHERE `gebuchtvon` <> \"\" "
."UNION ALL SELECT `id`,`gebuchtvon`,'dienstag' as tag FROM `dienstag` WHERE `gebuchtvon` <> \"\" "
."UNION ALL SELECT `id`,`gebuchtvon`,'mittwoch' as tag FROM `mittwoch` WHERE `gebuchtvon` <> \"\" "
."UNION ALL SELECT `id`,`gebuchtvon`,'donnerstag' as tag FROM `donnerstag` WHERE `gebuchtvon` <> \"\" "
."UNION ALL SELECT `id`,`gebuchtvon`,'freitag' as tag FROM `freitag` WHERE `gebuchtvon`<> \"\" ";
$result = mysqli_query($conn,$sql);
while($row = mysqli_fetch_array($result)){
if(strpos($row["gebuchtvon"],$datum) > 0){//nur wenn es eine Buchung gibt, die heute wieder anfängt
echo $row["gebuchtvon"]."<br><br>";
$gebuchtvon = explode("#",$row["gebuchtvon"]);//alle gebuchten Fahrten gesplittet
for($i=0;$i<count($gebuchtvon);$i++){//durch alle Buchungen laufen
if(strpos($gebuchtvon[$i],$datum) >0){//wenn die aktuelle Buchung wieder anfängt => aktualisieren
$offset = strrpos($gebuchtvon[$i],"/");
$gebuchtvon[$i] = substr($gebuchtvon[$i],0,$offset);
}
}
$neugebuchtvon = implode("#",$gebuchtvon); //neuen TExt imploden um in DB zu schreiben
echo $neugebuchtvon."<br><br>";
$sql = "UPDATE `".$row[2]."` SET `gebuchtvon` = \"".$neugebuchtvon."\" WHERE `id` = ".$row[0];
echo $sql."<br><br>";
$ergebnis = mysqli_query($conn,$sql);
echo $ergebnis."<br><br>";
}
}
我不知道您需要多少代码...
抱歉,我是德语变量名,而jsut所做的事情描述了这些变量的作用
没有重复。没有错误,因此我可以检查没有错误。
var_dump($ row):
array(6) { [0]=> string(1) "3" ["id"]=> string(1) "3" [1]=> string(29) "1/h/2019-03-11#1/r/2019-03-11" ["gebuchtvon"]=> string(29) "1/h/2019-03-11#1/r/2019-03-11" [2]=> string(7) "freitag" ["tag"]=> string(7) "freitag" }
给出的SQL是: 更新freitag SET gebuchtvon =“ 1 / h#1 / r”,其中id = 3;只是一个例子...
答案 0 :(得分:-2)
您可以尝试此操作以捕获错误:
try {
$sql = "UPDATE ".$row[2]." SET gebuchtvon = '".$neugebuchtvon."' WHERE id = ".$row[0];
} catch (Exception $e) {
print_r($e);
die;
}