我想設置一個更新功能,從一個表單獲取數據,但它並沒有更新它在phpmysql,這裏是查詢,可能是我缺少的東西。更新數據到mysql不工作
$query="UPDATE controlpanel1 SET ftitle_p1_1 = '$_POST[ftitle_p1_1]'";
我想設置一個更新功能,從一個表單獲取數據,但它並沒有更新它在phpmysql,這裏是查詢,可能是我缺少的東西。更新數據到mysql不工作
$query="UPDATE controlpanel1 SET ftitle_p1_1 = '$_POST[ftitle_p1_1]'";
好吧,正如大家都想說的那樣,你不應該那樣做,因爲這很危險。 讓我嘗試給你一個什麼樣的或多或少的更可接受的過程中,與庫MySQLi(您想爲使用的MySQLi或PDO)和一份準備好的聲明一個基本的例子:
$query= $MysqliConnection->prepare("UPDATE controlpanel1 SET ftitle_p1_1 = ? WHERE id = ?"); //reason why it's not updating, probably. You have to tell the system where to update. Which row.
$query->bind_param("si", $title, $id); //string, integral - title and id(?). Just guessing.
$title = $_POST["title_p1_1"];
$id = $_GET["I_have_no_idea"]; // or $_POST["I_have_no_idea"];
$query->execute();
$query->close();
$MysqliConnection->close();
,或者是指,說,this page。 消毒數據,請......即使有準備好的陳述,我也檢查字符串是否有效。我太擔心了,你不是?
感謝您的回答,我太擔心,因爲我只是試圖讓機制工作,當然我會做更多來保護數據庫。謝謝您的幫助。 – user2325465
好,如果這是你正在尋找的答案,請接受它。很高興幫助! – tattvamasi
確保您的mysqli擴展名和pdo擴展名在您的php.ini配置文件中啓用。
您需要選擇是否要使用程序或OO方式以及mysqli或PDO方式。
這是程序mysqli:
$DBConnect = new mysqli("localhost", "root", "myCoolPW", "myDBname");
$FTitle = '_';
$FTitle = $_POST['ftitle_p1_1'];
echo " Test posted FTitle: " . $FTitle . " ";
$query = "
UPDATE controlpanel1
SET ftitle_p1_1 = '$FTitle'
WHERE id != '2'
",
echo " Test query: " . $query . " ";
mysqli_query($DBConnect, $query);
if (mysqli_affected_rows($DBConnect) == -1)
echo "NOT successfull :-(";
else
echo "SUCCESS!!! :-)";
感謝您的幫助。 – user2325465
WHERE子句在哪裏? – Shomz
哦,我的SQL注入是該查詢的名稱。 – Mihai
您似乎已開放給SQL注入。另外,'$ _POST []'裏面的值應該用撇號填充。或者你可以這樣做:''UPDATE controlpanel1 SET ftitle_p1_1 ='「。 $ _POST ['ftitle_p1_1']。 「'」;'。但是,再次,** SQL注入** – jdepypere