我需要在php中创建一个SQL更新语句,我的列名必须是一个变量。 我从jQuery ajax post方法获取这些变量,我在PHP中使用它们:
$variable = $_POST['variable'];
$row = $_POST['row'];
$field = $_POST['field'];
当我回应它们时,我会得到正确的值,例如:
echo $variable;
echo $row;
echo $field;
我得到 - 马丁,2,名字。在我的数据库中,我有列名称 - 名字。所以,我试着发表这个声明(我知道我需要使用预备声明,但这是另一个问题)
$sql = 'UPDATE ajax_example SET '.$field.'= "'.$variable.'" WHERE id = "'.$row.'"';
mysql_query($sql) or die (mysql_error());
如果我更改'。$ field。'使用name - firstname,然后UPDATE成功,所以$ variable和$ row被正确定义,但我需要这个列名作为变量。我已经看过大约15个帖子,我已经尝试了每个软管代码,但没有。这真的不可能吗?
答案 0 :(得分:3)
你需要转义变量,这是一个给出你的背景的基本例子......
$conn = mysqli_connect(/* config */);
$sql = 'UPDATE ajax_example SET ' . mysqli_real_escape_string($conn, $field).'= "' . mysqli_real_escape_string($conn, $variable) . '" WHERE id = "' . mysqli_real_escape_string($conn, $row) . '"';
mysqli_query($conn, $sql);