这是我的代码:
$username = $connection->real_escape_string($username);
$html = $connection->real_escape_string($html);
$query = $connection->query("SELECT * from savedarticles WHERE username = '$username' AND article = '$html'");
$matches = mysqli_num_rows($query);
if ($matches == 0) {
$connection->query("INSERT INTO savedarticles ('username', 'article') VALUES ($username, $html)");
}
if ($matches == 1) {
$row = mysqli_fetch_array($query);
$connection->query("DELETE FROM savedarticles WHERE username = '$username' AND article='$html'");
}
我的表名在PHP代码和PHPMYADMIN部分中是相同的。我在表格中创建了两个名为username
和article
的列。但是,此代码不会插入新行。该表为空,没有行。另外,有没有办法直接删除一行,因为我已经将其单独删除(而不是再次通过整个表运行查询)。
答案 0 :(得分:0)
像这样更改此行。您不需要为列名称使用单引号
$connection->query("INSERT INTO savedarticles (username, article) VALUES ('$username', '$html')");
答案 1 :(得分:0)
您正在针对字段名称添加单引号,这是不正确的。
变化:
$connection->query("INSERT INTO savedarticles
('username', 'article') VALUES ($username, $html)");
要:
$connection->query("INSERT INTO savedarticles
(username, article) VALUES ('$username', '$html')");
您可以对字段名称使用反引号(`)以避免与MySQL保留关键字冲突。
示例如下:
$connection->query("INSERT INTO savedarticles
(`username`, `article`) VALUES ('$username', '$html')");
但是,单引号表示用户输入了字符串,它不会引用任何数据库名称,表名或字段名称。