参数无效尝试INSERT INTO MYSQL表?

时间:2014-01-19 19:45:07

标签: php mysql

if (! $con)
    {
    echo 'Could not CONNECT';
    }
    echo 'Connected to Database';
    $sql="INSERT INTO Persons VALUES 'Struan' , 'Smith', 13)";
    mysql_query($con, $sql);
    mysql_close($con);
    ?>

输出是:

  

警告:mysql_query():提供的参数不是第18行/home/www/struansmith.info/index.php中有效的MySQL-Link资源

2 个答案:

答案 0 :(得分:5)

修改

我注意到您编辑了代码(from your original question)。

改变这个:

$sql="INSERT INTO Persons VALUES 'Struan' , 'Smith', 13)";
mysql_query($con, $sql);
mysql_close($con);

为:

$sql="INSERT INTO `Persons` VALUES ('Struan' , 'Smith', 13)";
mysql_query($sql,$con);
mysql_close($con);
使用$con函数时,

mysql_*结束。另外,您的VALUES缺少一个(括号。


原始答案

您的代码存在一些问题。

结尾处缺少一个分号:

mysql_query($con,"INSERT INTO Persons ( VALUES ("Struan" , "Smith", 13)")

(并移除了VALUES前面的(),您使用双引号而不是VALUES的单引号。

替换为:

mysql_query("INSERT INTO `Persons` VALUES ('Struan', 'Smith', 13)", $con);
使用不推荐使用的$con函数时,

Plus mysql_*会结束。

mysqli_*与预备语句或PDO一起使用。

请参阅INSERT功能的MySQL手册:
  - http://dev.mysql.com/doc/en/insert.html

如果您仍然热衷于使用(已弃用的mysql_*函数,请访问Tizag.com,这是一个相当不错的网站。

请考虑使用prepared statementsPDO切换mysqli_*个功能。

答案 1 :(得分:3)

 "                                      "
 string starts here .... string ends here

和明显的语法高亮提示......颜色看起来不正确,是吗?

您可以将\"与双引号字符串一起使用。但更喜欢对mySQL查询使用单引号值。

注意:下一个编译错误将是缺少分号。然后是运行时问题,因为参数的顺序不正确:

resource mysql_query ( string $query [, resource $link_identifier = NULL ] )