[英]Inserting Values into MySQL table with PHP
我有一個包含多個值的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;
您不需要SELECT和UPDATE查詢來增加表中的列。
只需發送一個UPDATE查詢[示例]:
UPDATE impressions SET views = views + 1 WHERE ad_id = 3
丟棄所有已編寫的代碼,因為發布的所有內容都不正確。 絕對不要使用您設計的數據庫表。
如果我可能建議一本書或兩本書:
http://www.amazon.com/Build-Database-Driven-Using-MySQL/dp/0980576814/ref=dp_ob_title_bk
http://www.amazon.com/Simply-SQL-Rudy-Limeback/dp/0980455251
好吧... $sqlCmd
保存任何數據,您必須mysql_fetch_array();
(這將從查詢中獲取數據),然后再開始處理數據。
http://php.net/manual/en/function.mysql-fetch-array.php
另外,您的mysql_query();
語法錯誤。 參見手冊: http : //www.php.net/manual/en/function.mysql-query.php
mysql_select_db("delives0_ads", $con);
$sqlCmd = mysql_query("SELECT * FROM impressions WHERE `something` = '$writeVar';"); // replace something with your needed identifier in database structure
$sqlCmd = mysql_fetch_array($sqlCmd); // will fetch data in array
$yourData = $sqlCmd['what_you_want_to_get_from_table']; // what_you_want..._table is the variable you want to increment.
$yourData++;
mysql_query("UPDATE impressions SET `yourvariable` = '$yourData' WHERE `something` = '$writeVar';"); // updates data
mysql_close($con);
如果您可以提供數據庫結構,我們可以幫助您獲得完美的腳本!
PS不知道這是否真的有效(無法測試,很長一段時間沒有使用普通的mysql語法),但是我認為應該這樣做。 如果沒有,問題就出在 $yourData = $sqlCmd[0]...
,您只需要刪除[0]
。
有點離題,但仍然與您學習php / MySQL有關:
據我所知,當您執行查詢時,最好添加這樣的var : ““。$ var。””而不是“ $ var”
為了更好地理解我的意思,我將在上面的代碼中向您展示。 所以代替:
mysql_query("SELECT * FROM impressions ('$writeVar');");
您將擁有:
mysql_query("SELECT * FROM impressions ('".$writeVar."');");
我不記得在哪里讀過這篇文章,但這與優化查詢速度有關。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.