Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用PHP将值插入MySQL表_Php_Mysql - Fatal编程技术网

用PHP将值插入MySQL表

用PHP将值插入MySQL表,php,mysql,Php,Mysql,我有一个PHP数组,其中有几个值,对应于不同的横幅广告。假设调用了$a,这将是数组中的第0个值。我在表中有一个字段,同样称为0,它保存一个整数。我想从这个字段调用这个整数,增加它,然后把它放回同一行 过分简化。我想调出当前广告显示的印象数。假设广告$a有500个印象。我想把这个数字增加到501,然后把它放回表中 我希望我解释得足够好。以下是我目前的代码: $ads = array($a, $b, $c, $d, $e, $f, $g, $h, $i, $j); $rand = rand(0,9)

我有一个PHP数组,其中有几个值,对应于不同的横幅广告。假设调用了$a,这将是数组中的第0个值。我在表中有一个字段,同样称为0,它保存一个整数。我想从这个字段调用这个整数,增加它,然后把它放回同一行

过分简化。我想调出当前广告显示的印象数。假设广告$a有500个印象。我想把这个数字增加到501,然后把它放回表中

我希望我解释得足够好。以下是我目前的代码:

$ads = array($a, $b, $c, $d, $e, $f, $g, $h, $i, $j);
$rand = rand(0,9);
print($ads[$rand]);
$writeVar = $rand;

$con = mysql_connect("localhost","delives0_ads","ads");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("delives0_ads", $con);
$sqlCmd = mysql_query("SELECT * FROM impressions ('$writeVar');");
$sqlCmd++;
mysql_query("INSERT INTO impressions ('$writeVar`) VALUES ('$sqlCmd');");
mysql_close($con);
编辑:以下是SQL中的结构

CREATE TABLE IF NOT EXISTS `impressions` (
  `0` int(11) NOT NULL,
  `1` int(11) NOT NULL,
  `2` int(11) NOT NULL,
  `3` int(11) NOT NULL,
  `4` int(11) NOT NULL,
  `5` int(11) NOT NULL,
  `6` int(11) NOT NULL,
  `7` int(11) NOT NULL,
  `8` int(11) NOT NULL,
  `9` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

$sqlCmd
不保存任何数据,您必须
mysql\u fetch\u array()(这将从查询中获取数据),然后再开始使用数据进行操作

另外,您的
mysql_query()语法错误。参见手册:

编辑: 如果你能提供数据库结构,我们可以帮助你得到完美的脚本


p.S.不知道这是否真的有效(无法测试,很长时间没有使用普通的mysql语法),但我认为应该。如果没有,问题就出在
$yourData=$sqlCmd[0]…
,您只需删除
[0]

$sqlCmd
不保存任何数据,您必须
mysql\u fetch\u array()(这将从查询中获取数据),然后再开始使用数据进行操作

另外,您的
mysql_query()语法错误。参见手册:

编辑: 如果你能提供数据库结构,我们可以帮助你得到完美的脚本


p.S.不知道这是否真的有效(无法测试,很长时间没有使用普通的mysql语法),但我认为应该。如果没有,问题就出在
$yourData=$sqlCmd[0]…
,您只需删除
[0]

您不需要使用SELECT和UPDATE查询来增加表中的列

只需发送一个更新查询[示例]:

UPDATE impressions SET views = views + 1 WHERE ad_id = 3
把你写的所有代码都扔掉,因为你贴的东西都不正确。绝对不要使用您设计的数据库表

请允许我推荐一两本书:


不需要选择并更新查询来增加表中的列

只需发送一个更新查询[示例]:

UPDATE impressions SET views = views + 1 WHERE ad_id = 3
把你写的所有代码都扔掉,因为你贴的东西都不正确。绝对不要使用您设计的数据库表

请允许我推荐一两本书:


有点离题,但仍然与学习php/MySQL有关:

据我所知,在执行查询时,最好添加如下变量:“$var.”而不是“$var”

为了更好地理解我说的话,我将在上面的代码中向您展示。因此,不是:

mysql_query("SELECT * FROM impressions ('$writeVar');");
您将拥有以下功能:

mysql_query("SELECT * FROM impressions ('".$writeVar."');");

我不记得在哪里读到过这篇文章,但它与优化查询速度有关。

有点离题,但仍然与学习php/MySQL有关:

据我所知,在执行查询时,最好添加如下变量:“$var.”而不是“$var”

为了更好地理解我说的话,我将在上面的代码中向您展示。因此,不是:

mysql_query("SELECT * FROM impressions ('$writeVar');");
您将拥有以下功能:

mysql_query("SELECT * FROM impressions ('".$writeVar."');");


我不记得在哪里读过这篇文章,但它与优化查询速度有关。

@Andrei Korchagin-模糊问题、冗余sql和有问题的sql语法。介意用表格模式更新您的问题吗?如果
$writeVar
是THAD的实际ID,为什么要增加它?如果您这样做,印象将不再与生成它的广告相关联。您希望模式采用什么格式?我试着把它做成文本,但这是一个格式化的噩梦。而且,$writeVar会改变每个印象,所以它只是广告ID的临时持有者。@Andrei Korchagin-使用\G,比如
show create table YOUR_table\G
@Andrei Korchagin-模糊的问题、冗余的sql和有问题的sql语法。介意用表格模式更新您的问题吗?如果
$writeVar
是THAD的实际ID,为什么要增加它?如果您这样做,印象将不再与生成它的广告相关联。您希望模式采用什么格式?我试着把它做成文本,但这是一个格式化的噩梦。而且,$writeVar会改变每个印象,所以它只是广告ID的临时持有者。@Andrei Korchagin-使用\G,比如
show create table YOUR_table\G
mysql_fetch\u数组将一行存储到一个数组中,它不会填充包含所有行及其列的多维数组。省略[0]。谢谢,我已经这么想了,但我不确定,我已经创建了自己的数据库类,并且忘记了一些简单的mysql语法。像mysql\u query这样的原始PHP函数会有什么问题?mysql\u fetch\u数组将一行存储到数组中,它不会填充包含所有行及其列的多维数组。省略[0]。谢谢,我已经这么认为了,但我不确定,我已经创建了自己的数据库类,并且忘记了一些简单的mysql语法。像mysql\u query这样的原始PHP函数会有什么问题?我想问题在于我现在如何构造表。我只是按照我的模式制作了表格,但它似乎是一维的。我没有地方放“视图”、“广告id”之类的东西,然后创建一个新的模式。这里有更合适的方法:创建表印象(ad_id INT主键,views INT DEFAULT 0);--每个广告将有一行,该广告行将包含广告显示的次数。我认为问题在于我现在如何构建我的表。我只是按照我的模式制作了表格,但它似乎是一维的。我没有地方放“视图”、“广告id”之类的东西