我有一個產品可以編輯並添加一種語言。在我目前的api中,如果已經有一種語言,它可以被顯示並且可以被更新,但是我的問題是如果沒有其他細節,例如,當我編輯它時輸入一個新的語言,數據不會保存在數據庫。在一個查詢API和PHP中插入或更新
if(!empty($body['addtl'])){
$ProdArray = "";
foreach($body['addtl'] as $value){
foreach($value as $key => $innerValue){
if($key!="id")
if(!empty($innerValue))
$ProdArray .= $key."='".$innerValue."', ";
}
$ProdArray = trim($ProdArray, ", ");
$ProdArray .= " WHERE id=".$value['id'];
$sql_query = "UPDATE ProductAddtlDetails SET ".$ProdArray;
$stmt = $dbRemote->prepare($sql_query);
$stmt->execute();
$ProdArray = "";
}
$editFlag = 1;
}
我該如何解決我的問題?
** WARNING **:這有一些嚴重的[SQL注入漏洞](http://bobby-tables.com/),因爲在查詢中使用了「$ _GET」數據。儘可能使用**準備好的陳述**。這些在['mysqli'](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)和[PDO](http://php.net/manual/)中很簡單en/pdo.prepared-statements.php)其中任何用戶提供的數據都是用'?'或':name'指示符指定的,後者使用'bind_param'或'execute'填充,具體取決於您使用的是哪一個。 **絕不**將'$ _POST'或'$ _GET'數據直接放入您的查詢中。 – tadman
我在這裏看不到任何錯誤。查詢是否有效?它炸燬了嗎?你需要找出答案。最簡單的方法是使用任何驅動程序啓用異常。 – tadman