Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将值插入MySql时出现数据库错误_Php_Mysql_Mariadb - Fatal编程技术网

Php 将值插入MySql时出现数据库错误

Php 将值插入MySql时出现数据库错误,php,mysql,mariadb,Php,Mysql,Mariadb,我在插入值mysql时出错。 请看我的PHP代码 <?php $ali = $_POST['ali']; $con = @mysqli_connect('localhost', 'root', '', 'mohammad'); if (!$con) { echo "Error: " . mysqli_connect_error(); exit(); } $insertinto_ic_add = "INSERT I

我在插入值mysql时出错。 请看我的PHP代码

<?php
    $ali = $_POST['ali'];

    $con = @mysqli_connect('localhost', 'root', '', 'mohammad');

    if (!$con) {
        echo "Error: " . mysqli_connect_error();
        exit();
    }

    $insertinto_ic_add = "INSERT INTO sq (text) VALUES ('" . $ali . "')";
    mysqli_query($con, $insertinto_ic_add) or die("database error:" . mysqli_error($con));

?>
<form action="" method="post">
    <input name="ali">
</form>
我同意这不是SQL注入。但是预防这种情况的方法和解决问题的方法是一样的。必须对文本中的某些字符(尤其是撇号)进行转义

请注意,错误消息甚至指向撇号

如果你附和这句话,你就会明白

INSERT INTO sq (text) 
VALUES ('blah blah don't do this')
观察这三个撇号,想想解析器会有多混乱

更好的代码应该是

$mali = $con->real_escape_string($ali);
$insertinto_ic_add = "INSERT INTO sq (text) 
         VALUES ('" . $mali . "')";

您的代码容易受到相关攻击。甚至不能完全保护它。请学习使用yes'此代码可能与我的朋友重复,我在mysql中遇到问题NO sql injection,请参见我的示例