发送错误的SQL语法

时间:2017-06-09 08:50:18

标签: php mysql mariadb server-error

我有一个名为user的Mysql数据库。这是一张图片: std::memcpy

我想更改用户的用户名" dodlo.rg"编程。

实际上,我有PHP-Version 7.1。这是我的PHPCode的一部分:

已编辑代码:

double x[100][100];
cv::Mat A(100,100,CV_64F);
std::memcpy(A.data, x, 100*100*sizeof(double));

但是我得到了错误:"你的SQL语法错误了;检查与您的MariaDB服务器版本对应的手册,以便在#" SELECT * FROM user'附近使用正确的语法。在第1行"

提前致谢。

2 个答案:

答案 0 :(得分:1)

您必须将此查询转换为两部分

$sql1 = "UPDATE user SET username = $newName WHERE username = 'dodlo.rg'";
$sql2 = "SELECT * FROM user";

答案 1 :(得分:1)

问题在于两部分。 首先,由于此列是varchar字段,因此需要在引号内,否则会产生sql错误。 其次,后面的SELECT语句无效,但我想这是一个复制/粘贴错误。

因此,您的工作代码应为:

<ArrayOfstring xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays"><string>value1</string><string>value2</string></ArrayOfstring>

另外,请考虑在where语句中使用主键而不是varchar字段,因为它可以在更复杂的查询时提高速度。 (例如$newName= $_POST["changeT"]; $db = mysqli_connect("trolö", "trolö", "trolö123", "trolö") $sql = "UPDATE user SET username = '".addslashes($newName)."' WHERE username = 'dodlo.rg'"; $query = mysqli_query($db, $sql); $response["successU"] = true; )。

最后,但非常重要的是这段代码可能容易受到sql注入攻击。你需要使用准备好的陈述。