Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.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中使用INSERT时未选择数据库?_Php_Mysql_Google Analytics Api - Fatal编程技术网

Php 在MySQL中使用INSERT时未选择数据库?

Php 在MySQL中使用INSERT时未选择数据库?,php,mysql,google-analytics-api,Php,Mysql,Google Analytics Api,好吧,我对php和mysql还不太熟悉,我似乎无法理解这一点。所以我要做的是向MySQL表发送一些变量。我已经在函数中设置了连接(我相信这是可能的(?) 根据我当前的代码,它给出了以下错误 注意:在C:\xampp\htdocs\analyticsoverview\HelloAnalyticsApi.php第281行的INSERT INTO retrieveddata(profileId、profileName、pageViews、profileRevenue、currentDate)值(NU

好吧,我对php和mysql还不太熟悉,我似乎无法理解这一点。所以我要做的是向MySQL表发送一些变量。我已经在函数中设置了连接(我相信这是可能的(?)
根据我当前的代码,它给出了以下错误

注意:在C:\xampp\htdocs\analyticsoverview\HelloAnalyticsApi.php第281行的INSERT INTO retrieveddata(profileId、profileName、pageViews、profileRevenue、currentDate)值(NULL、'www.mywebsite.nl[testview2]、'48702'、'0.0',NULL)中未选择任何数据库

我已尝试将select_db添加到我的代码中,但它不起作用。 这是我的密码

    function printResults(&$results) {

        if (count($results->getRows()) > 0) {
        $profileName = $results->getProfileInfo()->getProfileName();
        $rows = $results->getRows();
        $sessions = $rows[0][0];
        $pageviews = $rows[0][1];
        $bounces = $rows [0][2];
        $betaalgoal = $rows [0][3];
        $transrevenue = $rows [0][4];


// set up database connection


    $servername = "localhost";
    $username = "root";
    $password = "";
    $dbname = "googleanalytics";

// Create connection

    $conn = new mysqli($servername, $username, $password, $dbname);

// Check connection

    if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
    }    

// select database that needs to be filled with the data from the variables

    $conn->select_db('googleanalytics');

// the mysql query to insert the variables into table called retrieveddata
<
    $query    = "INSERT INTO retrieveddata (profileId, profileName, pageViews, profileRevenue, currentDate) 
         VALUES(NULL,'$profileName', '$pageviews', '$transrevenue',NULL)";
    mysql_query($query) or trigger_error(mysql_error()." in ".$query);
函数打印结果(&$results){
如果(计数($results->getRows())>0){
$profileName=$results->getProfileInfo()->getProfileName();
$rows=$results->getRows();
$sessions=$rows[0][0];
$pageviews=$rows[0][1];
$bounces=$rows[0][2];
$betaalgoal=$rows[0][3];
$transrevenue=$rows[0][4];
//建立数据库连接
$servername=“localhost”;
$username=“root”;
$password=“”;
$dbname=“googleanalytics”;
//创建连接
$conn=newmysqli($servername、$username、$password、$dbname);
//检查连接
如果($conn->connect\u错误){
die(“连接失败:”.$conn->connect\U错误);
}    
//选择需要用变量中的数据填充的数据库
$conn->select_db('googleanalytics');
//mysql查询将变量插入名为retrieveddata的表中
<
$query=“插入retrieveddata(profileId、profileName、页面视图、profileRevenue、currentDate)
值(NULL、$profileName、$pageviews、$transrevenue、NULL)”;
mysql\u query($query)或trigger\u error(mysql\u error()......$query中);
您可以删除

$conn->select_db('googleanalytics');
因为在创建连接时,您已经选择了数据库,它是mysqli()的最后一个参数

尝试更改:

mysql_query($query) or trigger_error(mysql_error()." in ".$query);
其中:

$conn->query($query) or trigger_error(mysql_error()." in ".$query);
当您构建查询时,您必须连接更多字符串,否则您的变量将无法正确使用

$query="INSERT INTO retrieveddata (profileId, profileName, pageViews, profileRevenue, currentDate) VALUES(NULL,'".$profileName."', '".$pageviews."', '".$transrevenue."',NULL)";

首先,您不需要
$conn->select_db('googleanalytics');

您已经在以下位置选择了数据库:

$conn = new mysqli($servername, $username, $password, $dbname);
然后,您将MySQL API与不与任何其他函数混合的
MySQL\uUcode>函数混合使用

$query = "INSERT INTO retrieveddata 
          (profileId, profileName, pageViews, profileRevenue, currentDate) 
         VALUES (NULL,'$profileName', '$pageviews', '$transrevenue',NULL)";

$result = mysqli_query($conn, $query);

if ( !$result ) {
trigger_error('query failed', E_USER_ERROR);
}
将数据库连接传递到查询和我更改的错误触发器

或者干脆,
或die(mysqli_error($conn))
mysqli_query()

旁注:

现在,如果您的数据包含撇号或MySQL可能抱怨的其他数据,则需要使用
mysqli\u real\u escape\u string()
清理数据。否则,可能会出现语法错误

例如:

$profileName = mysqli_real_escape_string($conn, $profileName);
对其他变量也一样


  • 您当前的代码是开放的。使用,或者,它们更安全

添加到文件的顶部,这将有助于查找错误

<?php 
error_reporting(E_ALL);
ini_set('display_errors', 1);

// rest of your code

您已经在
$conn=new mysqli($servername,$username,$password,$dbname);
那么为什么要使用
$conn->select_DB('googleanalytics')呢
?另外,您正在使用
MySQL\u*
混合使用MySQL函数,因此您的整个代码都两次让您失望。@Fred ii.正确,请仔细阅读他给您的建议。大拇指up@anantkumarsingh我应该把它作为一个答案贴出来,但是有时候他们会回来说:“它仍然不起作用”-你知道这个练习;-)哈哈哈。是的,我明白。:)经常发生在你身上。不是吗?@anantkumarsingh更不用说281行了;哇。是的,我会传递这个。OP现在已经有足够的时间来测试它了。谢谢你的回答,我已经完成了你说的。它给我分析错误:语法错误,意外的'->'(t_OBJECT_操作符)在C:\xampp\htdocs\analyticsoverview\HelloAnalyticsApi.php第284行
或trigger\u error(mysql\u error()
你确定吗?@zanna第284行:mysqli->query($query)或trigger\u error(mysql\u error()。“$query”中的mysql\u error()。;对不起,我忘了一件事,正确的行是$conn->($query)或trigger\u error(mysql\u error()。“$query中的“$query);将其替换为正确的行,并且当前为我提供了:注意:在插入retrieveddata(profileId、profileName、pageViews、profileOmzet、currentDate)值(NULL、'www.mywebsite.nl[testview2]'、'48702'、'0.0',NULL)在第284行的C:\xampp\htdocs\analyticsview\HelloAnalyticsApi.php中,当前给了我致命的错误:在第289行的C:\xampp\htdocs\analyticsview\HelloAnalyticsApi.php中,查询失败。但我还有一些其他选项要尝试。我会让您知道它是如何进行的;)@ampyfibe您需要找出真正的错误是什么。使用
$result=mysqli\u query($conn,$query)或die(mysqli\u error($conn));
如果您还没有这样做,请检查您的日志。仅仅一个
查询失败
不足以找出查询失败的原因。@ampyfibe还添加了错误报告,如我的答案底部所述。看看这是否也有帮助。
<?php 
error_reporting(E_ALL);
ini_set('display_errors', 1);

// rest of your code