无法在MySQL表

时间:2015-10-28 13:33:34

标签: php mysql

这是我的代码:

 $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部分中是相同的。我在表格中创建了两个名为usernamearticle的列。但是,此代码不会插入新行。该表为空,没有行。另外,有没有办法直接删除一行,因为我已经将其单独删除(而不是再次通过整个表运行查询)。

2 个答案:

答案 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')");

但是,单引号表示用户输入了字符串,它不会引用任何数据库名称,表名或字段名称。

Reference: