[英]Can not store data in two tables
我試圖使用兩個不同的查詢將數據存儲在兩個表中。
其中一個可以正常工作,但是另一個沒有節省任何東西。 這兩個查詢是整頁腳本的一部分。 在這兩種情況下,第一個查詢都是腳本的一部分,並且工作正常。 第二個查詢由我編寫,以記錄用戶點擊。
actcontest ..表名稱的表結構是actcontest而不是act_contest,這是此處的復制/粘貼錯誤:[更正]
userid varchar(50) type varchar(50) points int(10) date date
情況1:
工作查詢:
$sql = $Db1->query('Insert into ptcwalllogs (userid, user_earned)
values ('.$credituser.','.$rate.')');
查詢問題:
$sqlact = $Db1->query('Insert into actcontest (userid, type, points, date)
values ('$username','ptcwall',6,now())');
情況2:
工作查詢:
$Db1->query("INSERT INTO `likesasapaddon` (user_id, page_id,date)
VALUES('{$thismemberinfo[userid]}', '{$get['pageid']}',NOW())");
查詢問題:
$Db1->query("INSERT INTO `actcontest` (userid, type, points, date)
VALUES ('$username','facebook',6,now())");
在兩種情況下,我都想將值存儲在同一張表中。
以下是案例1的腳本文件:
這是從提供者那里回發的。
<?php
$date1 = date('Y-m-d');
include("config.php");
include("includes/mysql.php");
$Db1 = new DB_sql;
$Db1->connect($DBHost, $DBDatabase, $DBUser, $DBPassword);
$your_pwd = ""; /* Postback Password */
$vip=getenv('REMOTE_ADDR');
$sent_pw = $_GET['pwd'];
$credited = intval($_GET['c']);
$credituser = intval($_GET['usr']);
$rate = trim($_GET['r']);
$type = intval($_GET['t']);
$allowed_ip = array('72.52.253.202');//PTCWall's IPS.
if(in_array($vip, $allowed_ip) && $sent_pw == $your_pwd)
{
if($credited == '1')
{
if($type == '1')
{
$run = $Db1->query('UPDATE user SET balance=balance+'.$rate.' WHERE userid = '.$credituser);
// This line below is used to store clicks locally
$sql = $Db1->query('Insert into ptcwalllogs (userid, user_earned) values ('.$credituser.','.$rate.')');
$sqlact = $Db1->query("Insert into actcontest (userid, type, points, date)
values ('".mysqli_real_escape_string($username)."','ptcwall',6,now())");
// $sqlact = $Db1->query('Insert into actcontest (userid, type, points, date) values ("lorry","ptcwall",6,now())');
if($run)
{
exit('ok');
} else{
exit('issue');
}
}elseif($type == '2'){
$run = $Db1->query('UPDATE user SET points=points+'.$rate.' WHERE userid = '.$credituser);
if($run)
{
exit('ok');
} else{
exit('issue');
}
}
}elseif($credited == '2')
{
if($type == '1')
{
$run = $Db1->query('UPDATE user SET balance=balance-'.$rate.' WHERE userid = '.$credituser);
if($run)
{
exit('ok');
} else{
exit('issue');
}
}elseif($type == '2'){
$run = $Db1->query('UPDATE user SET points=points-'.$rate.' WHERE userid = '.$credituser);
if($run)
{
exit('ok');
} else{
exit('issue');
}
}
}
}
else{
die();
}
//FILE 03302014
?>
Var轉儲后:
保存在單獨的文件中。
daata.php
<?php
$sqlact = $Db1->query("Insert into actcontest (userid, type, points, date)
values ('".mysqli_real_escape_string($username)."','ptcwall',6,now())");
var_dump($sqlact);
echo " success asdasdasdasdasdasdasdasdas " ;
?>
錯誤:
警告:mysqli_real_escape_string()恰好需要2個參數,第3行的./xxxx/daata.php中給出1個參數bool(true)
請指導。
這是有效的查詢:
$sqlact = $Db1->query("Insert into act_contest (userid, type, points, date)
values ('".mysqli_real_escape_string($username)."','ptcwall',6,now())");
$Db1->query("INSERT INTO `actcontest` (userid, type, points, date)
VALUES ('".mysqli_real_escape_string($username)."','facebook',6,now())");
注意:對於SQL查詢中的字符串,請始終使用mysqli_real_escape_string(或其等效項)。 否則您的應用程序將很快被SQL注入所入侵。
您確定表名“ actcontest”嗎? 在第一種情況下,您要在其下划線,而不是在第二種情況下。 您是否也確定該表模式:userid,類型,點和日期? 也許你打錯了字? 如果我是你,我將首先檢查所有這些。
警告:mysqli_real_escape_string()恰好需要2個參數,第3行的./xxxx/daata.php中給出1個參數bool(true)
此警告意味着您需要將數據庫連接傳遞給它,這是期望的第二個參數。
('".mysqli_real_escape_string($Db1, $username)."','ptcwall',6,now())")
請查閱文檔:
$sqlact = $Db1->query("Insert into act_contest (userid, type, points, date)
values ('".mysqli_real_escape_string($Db1, $username)."','ptcwall',6,now())");
$Db1->query("INSERT INTO `actcontest` (userid, type, points, date)
VALUES ('".mysqli_real_escape_string($Db1, $username)."','facebook',6,now())");
另外,請確保您的表中確實存在所有列。
加:
die('There was an error running the query [' . $Db1->error . ']');
如果有任何錯誤,這將表示一個錯誤。
即:
if($run)
{
exit('ok');
} else{
die('There was an error running the query [' . $Db1->error . ']');
}
將錯誤報告添加到文件頂部也是一件好事,這將有助於生產測試。
error_reporting(E_ALL);
ini_set('display_errors', 1);
$username
或任何其他變量應該未定義。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.