我有一张表buildtracker
连接到表单。我正在尝试编辑特定行中的数据,因此Update
行。
该表包含以下列:ID key ,EnteredBy,INI
$user = 'root';
$pass = '';
$db = 'cl_db';
$conn = new mysqli('localhost', $user, $pass, $db) or die("Something bad happened.");
$rowID = $conn->real_escape_string($_POST['ID']);
$enteredBy = $conn->real_escape_string($_POST['enteredBy']);
$ini = $conn->real_escape_string($_POST['ini']);
$query = "UPDATE buildtracker SET
EnteredBy = '$enteredBy', INI = '$ini'
WHERE ID = '$rowID' ";
$success = $conn->query($query); //insertion above ^ is the column names
if (!$success) {
die("Couldn't enter data: ".$conn->error);
}
return $query;
我没有在桌面上收到任何新数据或更新。我可以做些什么改进呢?
谢谢!
答案 0 :(得分:1)
我不知道你的应用程序在这个代码的上下文中。
但是[强烈]建议使用预准备语句来防止任何SQL注入攻击,特别是使用来自$ _POST的直接数据(可以清理)。
检查是否在预准备语句中执行查询是通过$stmt->execute()。
$user = 'root';
$pass = '';
$db = 'cl_db';
$conn = new mysqli('localhost', $user, $pass, $db) or die("Something bad happened.");
$prepare_query = "UPDATE buildtracker SET EnteredBy=?, INI=? WHERE ID=?";
$success = $conn->query($prepare_query); //insertion above ^ is the column names
if ($stmt = $conn->prepare($query)) {
// Possible data sanitation can be done below
$rowID = ($_POST['ID']);
$enteredBy = ($_POST['enteredBy']);
$ini = ($_POST['ini']);
// bind parameters
$stmt->bind_param('ssi', $enteredBy, $ini, $rowID);
// CHECKING is here: execute query (or die)
// Can check also for ($stmt->affected_rows > 0)
if (!$stmt->execute()){
die("Couldn't enter data: ".$conn->error);
}
return $query;
}
答案 1 :(得分:0)
正如我创建的所有错误 - 这是我的 # Uncomment the next line to define a global platform for your project
platform :ios, '11.0'
target 'App' do
# Comment the next line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!
pod 'Firebase'
pod 'FirebaseCore’
pod 'FirebaseAuth'
pod 'FirebaseStorage'
pod 'FirebaseDatabase'
pod 'Material'
pod 'Kingfisher', '~> 4.0'
pod 'MapKitGoogleStyler'
pod 'GeoFire', :git => 'https://github.com/firebase/geofire-objc.git'
pod 'Mapbox-iOS-SDK', '~> 3.6'
pod 'MapboxDirections.swift', '~> 0.12'
#Pods for App
target 'AppTests' do
inherit! :search_paths
# Pods for testing
end
target 'AppUITests' do
inherit! :search_paths
# Pods for testing
end
声明没有指向正确的html元素的结果。
原创
$rowID
工作
$rowID = $conn->real_escape_string($_POST['ID']); // ID is the COLUMN NAME
感谢您的意见和解答。
着手实施Hossam预防注射的更安全版本。我感谢你们所有人:)