我刚刚在 youtube 上完成了这个 Docker 教程:
https://www.youtube.com/watch?v=SXY0MLHP3hA&lc=Ugzp3vKtSOp0rn2lYyd4AaABAg
我能够为 PHP 和 MySQL 创建几个 Docker 容器。文件结构如下:
>Docker_PHP_MySQL
>DB
-Dockerfile
>src
-index.php
>www
-Dockerfile
development.env
docker-compose.yml
Run Code Online (Sandbox Code Playgroud)
数据库 Dockerfile:
FROM mysql:8.0
Run Code Online (Sandbox Code Playgroud)
索引.php:
<?php
$mysqli = new mysqli('tut07-db', getenv('MYSQL_USER'), getenv('MYSQL_PASSWORD'), 'information_schema');
if($mysqli->connect_error)
{
echo 'Connection Error [', $mysqli->connect_errno, ']: ', $mysqli->connect_error;
}
else
{
echo 'MySQLi Connected Successfully!';
}
?>
Run Code Online (Sandbox Code Playgroud)
www Dockerfile:
FROM php:7.2-apache
RUN docker-php-ext-install mysqli
RUN docker-php-ext-enable mysqli
Run Code Online (Sandbox Code Playgroud)
这是 development.env 文件:
MYSQL_USER=sys_admin
MYSQL_PASSWORD=sys_password
MYSQL_ROOT_PASSWORD=root_password
Run Code Online (Sandbox Code Playgroud)
最后是 docker-compose.yml 文件:
version: "3"
networks:
tut07-frontend:
driver: bridge
ipam: …Run Code Online (Sandbox Code Playgroud) 在创建一系列允许我使用 MySQLI、PHP 和 phpmyadmin 的 docker 容器的演练之后,我之前取得了成功:
https://gist.github.com/jcavat/2ed51c6371b9b488d6a940ba1049189b
我决定再试一次并进行一些调整,例如尝试使用 PDO 而不是 MYSQLI。
从 docker-compose.yml 文件开始:
version: "3.7"
services:
www:
build: .
ports:
- "8001:80"
volumes:
- ./www:/var/www/html/
links:
- db
networks:
- default
db:
image: mysql:5.7.13
ports:
- "3306:3306"
environment:
MYSQL_DATABASE: myDb
MYSQL_USER: user
MYSQL_PASSWORD: test
MYSQL_ROOT_PASSWORD: test
volumes:
- ./dump:/docker-entrypoint-initdb.d
- persistent:/var/lib/mysql
networks:
- default
phpmyadmin:
image: phpmyadmin/phpmyadmin
links:
- db:db
ports:
- 8000:80
environment:
MYSQL_USER: user
MYSQL_PASSWORD: test
MYSQL_ROOT_PASSWORD: test
volumes:
persistent:
Run Code Online (Sandbox Code Playgroud)
这是我的 Dockerfile:
FROM php:7.0.30-apache
RUN docker-php-ext-install …Run Code Online (Sandbox Code Playgroud) 我被困在一个包含 Tailwind 的教程中,在本例中是 Tailwind 3.3.2。
根据教程,我应该打开一个名为 tailwind.config.js 的文件并粘贴https://tailwindcss.com/docs/installation中的以下代码:
/** @type {import('tailwindcss').Config} */
module.exports = {
content: ["./src/**/*.{html,js}"],
theme: {
extend: {},
},
plugins: [],
}
Run Code Online (Sandbox Code Playgroud)
我立即在“模块”下看到红色波浪线,错误如下:
我做错了什么?本教程没有遇到这个错误。
我看到类似的帖子,但没有一个能帮助我解决我的问题。
在学习了从头开始构建 MERN 应用程序的 Udemy 教程后,我陷入了 mongoose 连接的困境。
这是我的 index.js 代码:
const express = require("express");
const mongoose = require("mongoose");
const app = express();
app.use(express.json());
app.listen(5000, () => console.log("Server started on port 5000"));
app.use("/snippet", require("./routers/snippetRouter"));
mongoose.connect("mongodb+srv://snippetUser:_password_@
snippet-manager.sometext.mongodb.net/main?retryWrites=
true&w=majority", {
useNewUrlParser: true,
useUnifiedTopology: true
}, (err) => {
if (err) return console.log("error here " + err);
console.log("Connected to MongoDB");
});
Run Code Online (Sandbox Code Playgroud)
这是我收到的错误:
Server started on port 5000
error here MongooseServerSelectionError: Could not connect to any
servers in your MongoDB Atlas cluster. One common …Run Code Online (Sandbox Code Playgroud) 我正在 Mac 上使用 Visual Studio 2019,尝试启动 REST API 项目。
尝试安装 NewtonsoftJson 6.0.2 时立即陷入困境
我只是在学习教程,正在使用的 NewtonsoftJson 版本是 3.1.9。
首先 - 有没有办法安装 6.0.2?
其次 - 如果无法安装 6.0.2,是否有办法安装旧版本以便我可以继续本教程?
我在评论中按照建议添加了 Newtonsoft.Json 13.0.1,但我仍然在下面的文本下方看到红线,上面写着 AddNewtonsoftJson():
services.AddControllersWithViews().AddNewtonsoftJson();
Run Code Online (Sandbox Code Playgroud) 我不确定为什么我的数据表中的数据在排序后消失了。
从用户单击提交按钮时触发的 jQuery 开始:
$('#searchSubmit').on('click', function()
{
var searchbooking = $('#searchbooking').val();
var searchbol = $('#searchbol').val();
$.post('api/search.php', {searchbooking: searchbooking, searchbol: searchbol}, function(data)
{
var obj = JSON.parse(data);
$('#tableBody').empty();
var htmlToInsert = obj.map(function (item)
{
return '<tr><td>'+item.BOL_DATE+'</td><td>'+ item.BOOKING_NUM +'</td></tr>';
});
$('#tableBody').html(htmlToInsert.join(''));
});
});
Run Code Online (Sandbox Code Playgroud)
这是我第一次使用 SQLSRV 编码的 PHP 脚本(我可能会添加):
<?php
if($_POST['searchbooking'] == true || $_POST['searchbol'] == true)
{
$_SESSION['where'] = "";
$searchbooking = stripslashes(str_replace( "'", "''", $_POST['searchbooking']));
$searchbol = stripslashes(str_replace( "'", "''", $_POST['searchbol']));
if($searchbooking != "")
{
if( $_SESSION['where'] != "" ) $_SESSION['where'] …Run Code Online (Sandbox Code Playgroud) 尝试使用我在另一个应用程序中使用的相同代码创建 Excel 导出按钮。
不幸的是,我收到以下错误:
Uncaught Cannot extend unknown button type: excelHtml5
Run Code Online (Sandbox Code Playgroud)
以下是在数据表上方生成按钮的代码部分:
"dom": 'Bfrtip',
"buttons": [
{
text: '<i class="fa fa-search"></i> Search All',
className: 'searchAll btn btn-success btn-sm',
action: function (e, dt, node, config)
{
$('#searchAllModal').modal('show');
}
},
{
extend: 'excelHtml5', /*** here is the problem ***/
title: 'Matchback Rail Export Results',
text: '<i class="fa fa-download"></i> Export Results',
className: 'btn btn-secondary btn-sm',
customize: function( xlsx )
{
var sheet = xlsx.xl.worksheets['sheet1.xml'];
$('row c[r^="A"]', sheet).attr( 's', '2' );
},
exportOptions:
{ …Run Code Online (Sandbox Code Playgroud) 根据我之前的一些问题,我正在使用数据表。我能够在表的顶部添加INPUT字段,以在数据表中进行各个列的搜索。
我现在需要做的是在页面刷新后保留在INPUT字段中输入的参数。
到目前为止,这是我的代码:
// header input filters
$('#example1 .filters th').each(function(){
var title = $('#example1 thead th').eq($(this).index()).text();
$(this).html('<input type="text" placeholder="Search '+title+'" />');
});
// set and print the datatable
var $dataTable = $('#example1').DataTable({
"ajax": 'api/dateset.php',
"iDisplayLength": 25,
"order": [[ 6, "desc" ]],
"scrollY": 580,
"scrollX": true,
"bDestroy": true,
"stateSave": true
});
// Apply the search to columns
$dataTable.columns().eq(0).each(function(colIdx){
$('input', $('.filters th')[colIdx]).on('keyup change', function(){
$dataTable
.column(colIdx)
.search(this.value)
.draw();
});
});
Run Code Online (Sandbox Code Playgroud)
如果您会在上面设置$ dataTable的部分中注意到,应该会看到“ stateSave”:true。使用该方法,页面刷新时,它会保存用户输入的参数搜索,但不会在“输入”字段中显示文本。
那就是我被困住的地方。
这是一个视觉表示:
刷新之前-
刷新后-
正如您在第二张图片中看到的那样,该搜索对于以TEST222开头的BOOKING很有效,但是该文本在BOOKING INPUT字段中不再可见。
我确实遇到了这篇文章:https : …
我试图弄清楚为什么这个上传脚本失败了。
从HTML FORM开始:
<form role="form" action="api/upload.php" method="post" enctype="multipart/form-data">
<input id="file" name="file" type="file" />
<input class="btn btn-primary" type="submit" value="Upload" />
</form>
Run Code Online (Sandbox Code Playgroud)
这是PHP脚本:
<?php
if(isset($_FILES['file'])){
$file = $_FILES['file'];
$target_file = basename($_FILES["file"]["name"]);
$file_name = $file['name'];
$file_tmp = $file['tmp_name'];
$file_size = $file['size'];
$file_error = $file['error'];
$file_ext = explode('.',$file_name);
$file_ext = strtolower(end($file_ext));
$allowed = array('txt', 'jpg', 'xlsx', 'pptx', 'docx', 'doc', 'xls', 'pdf');
if(in_array($file_ext, $allowed)){
if($file_error === 0){
if($file_size <= 99600000){ // this was set to 600000
$file_name_new = uniqid('', true) . '.' . $file_ext;
$file_destination …Run Code Online (Sandbox Code Playgroud) 我一直在使用仅包含 ID 和 NAME 列的 Docker Compose 处理一个简单的 MySQL 表。我尝试更新最初创建表的 myDb.sql 文件,如下所示:
CREATE TABLE `Person` (
`id` int(11) NOT NULL,
`firstName` varchar(50) NOT NULL, // updated this column
`lastName` varchar(50) NOT NULL // added this column
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Run Code Online (Sandbox Code Playgroud)
我将 NAME 列更新为 firstName,并添加了一个 lastName 列。
然后我通过运行 DOCKER-COMPOSE STOP 停止了 Docker 容器。
然后我通过运行 DOCKER-COMPOSE UP 重新启动了 Docker 容器。我什至尝试过 DOCKER-COMPOSE RESTART。
我能够在控制台中打印的错误消息是这样的:
SELECT '', id, `firstName` From Person<br>Unknown column 'firstName' in 'field list'
Run Code Online (Sandbox Code Playgroud)
这让我相信我没有正确重启 Docker Compose。
如何重新启动 Docker Compose 以便它运行 CREATE …
使用 jQuery DataTables,我使用下面的代码来突出显示选定的行:
var table = $('#example1').DataTable();
$('#example1 tbody').on('click', 'tr', function()
{
if($(this).hasClass('selected')){
$(this).removeClass('selected');
}
else{
table.$('tr.selected').removeClass('selected');
$(this).addClass('selected');
}
});
Run Code Online (Sandbox Code Playgroud)
我还在页面顶部有这个页内 CSS 类:
<style>
tr.selected {background-color: #a6a6a6;}
</style>
Run Code Online (Sandbox Code Playgroud)
上述所有内容都相应地起作用。我可以单击该行的任意位置,该行将突出显示。
然而,我遇到了一个问题。在每一行中,都有一些链接,用户可以单击这些链接来打开模式窗口。如果用户直接单击链接,模式将打开并且该行确实会突出显示。
如果用户首先单击该行,然后在同一行中单击链接以打开窗口,则会出现问题...现在该行不再突出显示。
我需要做的是无论他们单击同一行多少次,都将突出显示在该行上 - 直到他们单击不同的行。
我如何调整上面的 jQuery 来实现这一点?
当我注意到日期时间没有在控制台中显示为字符串时,我正在检查一些旧代码.
以下是它在控制台中的外观:
以下是显示上图的PHP代码:
data-conStatDate=".$row['STATUS_DATE_TIME']."
Run Code Online (Sandbox Code Playgroud)
我试着做以下事情:
data-conStatDate=".strtotime(date($row['STATUS_DATE_TIME'])."
Run Code Online (Sandbox Code Playgroud)
但那只输出了一年.
这看起来像是一个简单的任务,但我似乎无法弄清楚为什么日期会出现在控制台中.
刚开始学习 C# 和 SQL Server。
在 Visual Studio 2019 中,我有以下代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;
namespace ConnectingToSQLServer
{
class Program
{
static void Main(string[] args)
{
string connectionString = "Data Source=(LocalDb)\\MSSQLLOCALDB;Initial Catalog=EmployeesDb;Integrated Security=True";
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
using (SqlCommand cmd = SqlCommand()) // <- error is pointing here
{
cmd.Connection = conn;
cmd.CommandText = "SELECT * FROM Employees";
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
// int id = …Run Code Online (Sandbox Code Playgroud) javascript ×5
datatables ×4
jquery ×4
docker ×3
html ×3
mysql ×3
php ×3
.net ×2
c# ×2
.net-core ×1
api ×1
attributes ×1
commonjs ×1
css ×1
dbconnection ×1
dbeaver ×1
es6-modules ×1
express ×1
mern ×1
mongodb ×1
mongoose ×1
rest ×1
sql-server ×1
tailwind-css ×1
upload ×1
whitelist ×1