gpt4 book ai didi

php - 字符 : ' (single quotation) when trying to save to mySql 的问题

转载 作者:行者123 更新时间:2023-11-29 11:29:04 24 4
gpt4 key购买 nike

每当字符串中存在此字符时,我都会尝试保存:'(单引号) - 它不会保存。不会产生错误。我需要帮助来了解问题所在。我的字符集必须容纳法语字符。否则一切正常。

<?php
header ('Content-type: text/html; charset=utf-8');

include_once('../../../init.php');

mysql_set_charset("utf8");

$articleid = $_POST['articleid'];
$contenu = $_POST['editabledata'];
$name = $_POST['name'];

mysql_query("
UPDATE al_articles SET $name='$contenu'
WHERE (ArticleID='$articleid')

") or die(mysql_error());

?>

最佳答案

你在做什么叫SQL Injection因为您在查询中使用原始用户输入。

因此,如果您传递 Hello, my name is 'justinas' ,那么您的查询将类似于 UPDATE al_articles SET $name='Hello, my name is 'justinas'' 。正如您所看到的,它会破坏您的 SQL 查询,因为如果关闭字符串。

<小时/>

如何解决

使用未弃用的库:PDOmysqli_* .
比使用准备好的语句和参数绑定(bind):

$name = preg_replace('/[^a-zA-Z]/', '', $_POST['name']);
$sql = $pdo->prepare("UPDATE al_articles SET `{$name}` = :content WHERE `ArticleID` = :id");
$sql->execute([
':content' => $_POST['editabledata'],
':id' => $_POST['articleid']
]);

关于php - 字符 : ' (single quotation) when trying to save to mySql 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37723771/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com