我正在使用mysql和phpmyadmin作为数据库。
我也在网站的前端使用php。
我的数据库中有两列,我正在为此示例工作。
我有一个名为temp_column的列,另一个名为example_column的列。
在名为temp_column的列中,我将使用其他列的名称,在本例中为example_column。
我希望能够从temp_column读取,检索此值(其中包含example_column),并更新example_column中的值。
我尝试过像这样的2个单独的查询,但这不起作用。
$userIdentity = $_SESSION['userIdentity'];
$variable = "SELECT clear FROM UserInfo WHERE userIdentity = '$userIdentity";
$result1 = $dbc->query($variable);
第二次查询
$userIdentity = $_SESSION['userIdentity'];
$sql = "UPDATE UserInfo SET $result1 = NOT go WHERE userIdentity = '$userIdentity'";
$result = $dbc->query($sql);
我也尝试过使用CASE和内联if语句但没有成功。
我正在研究这个项目作为研究项目的一部分,我们将不胜感激。
答案 0 :(得分:0)
你的引言在两个查询中都很糟糕。
此外,除非您使用自定义数据库类,否则我怀疑$result1
是需要从中提取值的结果集。我在以下代码中假设了PDO:
$userIdentity = $_SESSION['userIdentity'];
$sql = "SELECT clear FROM UserInfo WHERE userIdentity = '$userIdentity'";
$result1 = $dbc->query($sql);
$colname = $result1->fetchColumn();
$sql = "UPDATE UserInfo SET $result1 = 'NOT go' WHERE userIdentity = '$userIdentity'";
$result = $dbc->query($sql);
继续假设它是PDO,你实际应该做的是:
$userIdentity = $_SESSION['userIdentity'];
$stmt = $dbc->prepare("SELECT clear FROM UserInfo WHERE userIdentity = ?");
$result = $stmt->execute(array($userIdentity));
$colname = $result1->fetchColumn();
$stmt = $dbc->prepare("UPDATE UserInfo SET $result1 = 'NOT go' WHERE userIdentity = ?");
$result = $stmt->execute(array($userIdentity));
准备好的语句可以保护您的查询免受错误值的影响。