在我的应用程序中,我试图将图像从android发布到phpmyadmin,我也创建了php代码,在这里:

MyPhp.php:

<?php
$servername = "dontneedthis";
$username = "also";
$password = "dont care";
$dbname = "bla bla";


$conn =mysqli_connect('localhost', $username, $password);

$db_selected = mysqli_select_db($conn, $dbname);
if (!$db_selected) {
  die ('Can\'t use db : ' . mysql_error());
}


    $base=$_REQUEST['image'];
    $filename = $_REQUEST['filename'];
    $binary=base64_decode($base);

    $sql = "INSERT INTO table (image) VALUES('{$binary}')";

    if ($conn->query($sql) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

$conn->close();

?>


当我从android上传图像时,出现错误,表明他确实理解这一点:

INSERT INTO table (image) VALUES


他展示了许多我不认识的符号。我创建了一个表,其中一行可以添加100000个TEXT符号。我试图将值添加为blob,并尝试将排序规则更改为binary,但是没有任何用处吗?

最佳答案

为什么没有人会费心地引用自己的东西?

table是我所知道的所有SQL方言中的关键字,因此会导致语法错误。
但是由于这个原因,引号和反引号被发明了。

做这个:

INSERT INTO `table` (`image`) VALUES ...


而且您应该少遇到一个问题。

另外,您必须转义$binary变量,否则它将破坏您的'引号:

$binary = mysqli_real_escape_string($conn, base64_decode($base));

10-07 19:27