簡體   English   中英

SQL列名中的PHP變量

[英]PHP variable in SQL column name

我需要在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個帖子,我已經嘗試了每個軟管代碼,但沒有。 這真的不可能嗎?

您需要轉義變量,這是給定上下文的基本示例...

$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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM