2
$nam=$_POST['name'];
$fname=$_POST['family'];
$dat=$_POST['date'];
$bal=$_POST['balance'];
$curr=$_POST['currency'];
$con=mysql_connect('localhost', 'xxxx', 'xxxx', 'xxxx');
$db=mysql_select_db('users',$con);
$ins=mysql_query("INSERT INTO users (Name, FamilyName, Date, Balance, Currency) VALUES  ('$nam', '$fname', '$dat', '$bal', '$curr'))",$con);
 if (!mysql_query($ins,$con))
{
 die('Error: ' . mysql_error($con));
}

伙计们,我得到了这个代码,我正在尝试做一些像注册表单之类的事情。我已经三次检查了变量的名称,并且查询本身在 SQL 数据库中执行时正在工作。问题是当我将它包含在我的 php 脚本中时,它返回查询为空。我环顾四周,但网络上的所有错误都与未分配给变量或具有多个插入语句等有关。所以我的问题是,当我实际从 Web 表单输入数据时,为什么会得到这个?错误:查询为空

PS好的,所以我对此的看法是:我第二次删除了您所说的检查,即 if (!mysql_query($ins,$con)) { die('Error: ' .mysql_error($con)) ; 现在我得到了执行,但它并没有真正将条目添加到数据库中,我无法调用它。那是新名字。

4

2 回答 2

3

您基本上是在尝试使用mysql_query()两次:

$ins=mysql_query("INSERT INTO users (Name, FamilyName, Date, Balance, 
Currency) VALUES  ('$nam', '$fname', '$dat', '$bal', '$curr'))",$con);

if (!mysql_query($ins,$con))
{

$ins如果查询正确执行,则将包含有效的 MySQL 资源,但您正尝试在if条件中再次使用它。

只需mysql_query()从条件中删除部分,如下所示:

if(!$ins) {
    # code ...
}

那应该可以解决这个特定问题。但请注意,您的代码容易受到SQL 注入的影响。此外,mysql_* 功能已被弃用,很快将被删除。我建议您切换到 MySQLi 或 PDO 并开始使用参数化查询以确保安全。

于 2013-10-19T10:44:41.087 回答
0

这是不正确的

 if (!mysql_query($ins,$con))

你为什么要执行查询的查询?

if (!$ins||!$con))在您尝试检查查询和连接是否成功时使用

于 2013-10-19T10:46:40.060 回答