Php 为什么我的if语句总是返回false

Php 为什么我的if语句总是返回false,php,mysql,Php,Mysql,我有一个脚本,它检查一个表是否存在,如果不存在,它就会创建一个表。该表创建良好,数据正确输入。一旦创建了一个表并遇到脚本,我将再次使用测试。但是它总是返回true并运行createtable脚本。有人能解释为什么吗 <?php include 'config.php'; $scriptot = ($_POST["ohyeah"]); $scriptname = ($_POST["scriptname"]); $y = 1; $scriptnamed = "".$scriptname."eq

我有一个脚本,它检查一个表是否存在,如果不存在,它就会创建一个表。该表创建良好,数据正确输入。一旦创建了一个表并遇到脚本,我将再次使用测试。但是它总是返回true并运行createtable脚本。有人能解释为什么吗

<?php
include 'config.php';
$scriptot = ($_POST["ohyeah"]);
$scriptname = ($_POST["scriptname"]);
$y = 1;
$scriptnamed = "".$scriptname."equip";
$r= 1;
$scriptot = $scriptot + 1;

echo $scriptnamed;


$val = mysql_query("select 1 from specifics");
echo $val;
if($val !== FALSE)
{
    echo 'its there';
}
else
{
   echo 'No table Found';//always runs this even if exists
// sql to create table
$sql1 = "CREATE TABLE specifics (
ID int NOT NULL AUTO_INCREMENT,
 equiplist varchar(255),
 stage varchar(255),

PRIMARY KEY (ID)
)";
}

IF
语句中,查询返回
1
。然后so
$val=1
。因此,通过替换您的
IF
语句
1==FALSE
这绝对是正确的。因此,它将始终运行
echo'its there'

$val = mysql_query("select 1 from specifics");
echo $val;
if($val !== FALSE)
{
    echo 'its there';
}
else
{
   echo 'No table Found';
试试这个:

$val = mysql_query("SELECT COUNT(*)
                    FROM information_schema.tables
                    WHERE table_schema = 'YOUR_DATABASE_NAME_HERE' 
                    AND table_name = 'specifics';");
echo $val;
if($val == 1)
{
    echo 'its there';
}
else
{
   echo 'No table Found';

您从未真正执行过
CREATE
查询,至少在这个代码段中没有。这意味着您的
SELECT
查询总是在不存在的表上运行

mysql_query($sql1);

此外,如果您想用
SELECT
检查表是否存在,请查看以下答案,以获得更清晰的方式:

它运行时未找到表?我不应该使用select 1?谁否决了我?在我的帮助下,我正在努力使这项工作顺利进行。目前表已经停止创建,soI需要对其进行排序