我想通过下面的表格更新 MySQL 行。该表单按原样工作得很好,但是,如果我将一个字段留空,它也会将 MySQL 中的字段更改为空白。我想更新 sql 但跳过任何空白字段。
我已经阅读了一些这样做的方法,但它们似乎不合逻辑。即在 sql 字符串本身中使用 if 语句。(让 MySQL 完成应该在 PHP 中完成的工作)。
if($_SERVER['REQUEST_METHOD'] != 'POST')
{
echo '<form method="post" action="">
ID: <input type="text" name="a" /><br>
Program: <input type="text" name="b" /><br>
Description: <textarea row="6" cols="50" name="c"></textarea><br>
Cost: <input type="text" name="d"><br>
<input type="submit" value="Add Link" />
</form>';
}
try {
$dbh = new PDO($dsn, $user, $pass);
$dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$stmt = $dbh->prepare('UPDATE links SET Program = :program , Descr = :descr, Cost = :cost WHERE Id= :id'); …Run Code Online (Sandbox Code Playgroud) 我一直想弄清楚为什么自动加载对“ Authentication \ auth()”不起作用的原因。“ dBase \ db()”类正在很好地加载,但是我得到了:
错误:在第8行的/var/htdocs/dev/test.php中找不到类'Authentication \ auth'
当调用test.php时。
根composer.json-
"require": {
"geeshoe/dbClass": "dev-develop",
"geeshoe/authClass": "dev-master"
},
"autoload": {
"psr-4": {
"dBase\\": "vendor/geeshoe/dbclass/",
"Authentication\\": "vendor/geeshoe/authClass/"
}
}
Run Code Online (Sandbox Code Playgroud)
authClass.php标头-
<?php
namespace Authentication;
use dBase\db;
class auth extends db
{
Run Code Online (Sandbox Code Playgroud)
test.php-
if (file_exists("vendor/autoload.php")) {
require "vendor/autoload.php";
} else {
echo "Dam.. Something went wrong!";
}
$test = new \dBase\db();
$var = new \Authentication\auth();
Run Code Online (Sandbox Code Playgroud)
如果有人能指出对我来说显而易见的话,那太好了。另外,出于测试目的,未在authClass-> composer.json文件中指定自动加载。