Php 为什么从数据库中选择*不起作用?

Php 为什么从数据库中选择*不起作用?,php,mysql,Php,Mysql,插入到从未被插入,我的数据库如下 include "connect.php"; $deck = addslashes($_GET['deck']); $side = addslashes($_GET['side']); $type = addslashes($_GET['type']); $by = addslashes($_GET['creator']); $name = addslashes($_GET['name']); $table = "deck"; $result = mysq

插入到从未被插入,我的数据库如下

include "connect.php";

$deck = addslashes($_GET['deck']);
$side = addslashes($_GET['side']);
$type = addslashes($_GET['type']);
$by = addslashes($_GET['creator']);
$name = addslashes($_GET['name']);

$table = "deck";

$result = mysql_query("SELECT * FROM $table WHERE name = '$name' AND by = '$by'");
if(!$result){
    $query2 = "INSERT INTO $table (deck, side, name, type, by) VALUES ('$deck', '$side', '$name', '$type', '$by')";
    $result2 = mysql_query($query2);
}

by是保留关键字

像这样使用

id int(11) autoincrement
deck varchar(900)
side varchar(900)
type varchar(900)
by varchar(900)
name varchar(900)

你试过检查错误吗
mysql\u error()
是你的朋友。了解它警告:不要使用
addslashes()
来转义字符串;这是不够的,会给你留下安全漏洞。改用
mysql\u real\u escape\u string()
。更好的是,完全停止使用过时的
mysql\u xxx()
函数,并切换到更好的DP API,例如,它将允许您使用参数化查询等现代技术。如果记录已存在,则不会像代码假定的那样使SELECT查询崩溃。如果您在查询后实际检查错误,您就会知道这是问题所在。函数提供返回代码是有原因的,如果它们在出现故障时返回某些内容,请检查它们是否工作
$result = mysql_query("SELECT * FROM $table WHERE name = '$name' AND `by` = '$by'");