【问题标题】:Can't load data from mysql database无法从mysql数据库加载数据
【发布时间】:2015-01-12 21:22:50
【问题描述】:

这是我的问题。我正在设置日历,但在从 sqlite 数据库切换到我的 mysql 数据库时遇到问题。

问题是 DayPilot 从 mysql 传递事件时没有加载事件。非常感谢任何帮助。谢谢。

<?php

//$db_exists = file_exists("daypilot1.sqlite");
//$db = new PDO('sqlite:daypilot.sqlite'); This works

// i tried these two ways. both of them did not work.

$db = new PDO("mysql:host=localhost;dbname=his", "root", "123"); 


/* $servername = "localhost";
$username = "root";
$password = "123";


try {
    $db = new PDO("mysql:host=$servername;dbname=his", $username, $password);
    echo "Connected successfully";
    }
catch(PDOException $e)
    {
    echo $e->getMessage();
    }
  */

if (!$db) {
    //create the database
    $db->exec("CREATE TABLE IF NOT EXISTS events (
                        id INTEGER PRIMARY KEY, 
                        name TEXT, 
                        start DATETIME, 
                        end DATETIME,
                        resource VARCHAR(30))");

    $messages = array(
                    array('name' => 'Event 1',
                        'start' => '2013-05-09T00:00:00',
                        'end' => '2013-05-09T10:00:00',
                        'resource' => 'B')
                );

    $insert = "INSERT INTO events (name, start, end, resource) VALUES (:name, :start, :end, :resource)";
    $stmt = $db->prepare($insert);

    $stmt->bindParam(':name', $name);
    $stmt->bindParam(':start', $start);
    $stmt->bindParam(':end', $end);
    $stmt->bindParam(':resource', $resource);

    foreach ($messages as $m) {
      $name = $m['name'];
      $start = $m['start'];
      $end = $m['end'];
      $resource = $m['resource'];
      $stmt->execute();
    }

}

?>

【问题讨论】:

    标签: php mysql database sqlite pdo


    【解决方案1】:

    试试这个

    <?php
    
    //$db_exists = file_exists("daypilot1.sqlite");
    //$db = new PDO('sqlite:daypilot.sqlite'); This works
    
    // i tried these two ways. both of them did not work.
    
    $db = new PDO("mysql:host=localhost;dbname=his", "root", "123"); 
    
    
    /* $servername = "localhost";
    $username = "root";
    $password = "123";
    
    
    try {
        $db = new PDO("mysql:host=$servername;dbname=his", $username, $password);
        echo "Connected successfully";
        }
    catch(PDOException $e)
        {
        echo $e->getMessage();
        }
      */
    
    if (!$db) {
        //create the database
        $db->exec("CREATE TABLE IF NOT EXISTS events (
                            id INTEGER PRIMARY KEY, 
                            name TEXT, 
                            start DATETIME, 
                            end DATETIME,
                            resource VARCHAR(30))");
    
        $messages = array(
                        array('name' => 'Event 1',
                            'start' => '2013-05-09T00:00:00',
                            'end' => '2013-05-09T10:00:00',
                            'resource' => 'B')
                    );
    
        $insert = "INSERT INTO events (name, start, end, resource) VALUES (:name, :start, :end, :resource)";
        $stmt = $db->prepare($insert);
    
    
        foreach ($messages as $m) {
          $name = $m['name'];
          $start = $m['start'];
          $end = $m['end'];
          $resource = $m['resource'];
        }
    
        $stmt->bindParam(':name', $name);
        $stmt->bindParam(':start', $start);
        $stmt->bindParam(':end', $end);
        $stmt->bindParam(':resource', $resource);
        $stmt->execute();
    
    }
    
    ?>
    

    我没有测试过,但希望它能解决你的问题。

    【讨论】:

    • 这段代码有什么变化?这是原始代码
    • 感谢您的回复
    • @user2781812 $stmt-&gt;execute(); 在循环外,$stmt-&gt;bindParam 在循环后。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-17
    • 1970-01-01
    • 1970-01-01
    • 2020-05-02
    • 2022-01-22
    • 1970-01-01
    • 2012-07-10
    相关资源
    最近更新 更多