簡體   English   中英

使用PHP將值插入MySQL表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM