用PHP将值插入MySQL表
我有一个PHP数组,其中有几个值,对应于不同的横幅广告。假设调用了$a,这将是数组中的第0个值。我在表中有一个字段,同样称为0,它保存一个整数。我想从这个字段调用这个整数,增加它,然后把它放回同一行 过分简化。我想调出当前广告显示的印象数。假设广告$a有500个印象。我想把这个数字增加到501,然后把它放回表中 我希望我解释得足够好。以下是我目前的代码:用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)
$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”之类的东西