如果我没有更改字段值中的至少1个,则更新失败。
插入正常。
我的git https://github.com/emerson-cs-santos/TSI-PI_2-2019/blob/master/PHP/novo_user.php
如果我继续这样做: $ status = $ status。 ''; 可行,但听起来是正确的解决方案
-- MYSQL --
CREATE DATABASE IF NOT EXISTS SENAC_PI;
USE SENAC_PI;
CREATE TABLE IF NOT EXISTS USUARIOS
(
codigo INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY
,nome VARCHAR(20) NOT NULL
,senha VARCHAR(200) NOT NULL
,tipo VARCHAR(20) NOT NULL
)
;
-- PHP --
<?php
// Open a Connection to MySQL
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "SENAC_PI";
// Create connection
$conn = new mysqli($servername, $username, $password,$dbname);
// Check connection
if ($conn->connect_error)
{
die("Connection failed: " . $conn->connect_error);
echo 'errado';
return;
}
$query = 'use SENAC_PI';
$result = $conn->query($query);
$codigo = 0;
$login = 'teste';
$senha = '123';
$status = 'Ativo';
$query =
" INSERT INTO USUARIOS ( codigo, nome, senha, tipo ) Values (?, ?, ?, ?)";
$querytratada = $conn->prepare($query);
$querytratada->bind_param("isss",$codigo,$login,$senha,$status);
$querytratada->execute();
if ($querytratada->affected_rows > 0)
{
$resposta = 'ok';
}
else
{
$resposta = 'erro';
}
-- update
$query =
" UPDATE USUARIOS SET nome = ? ,senha = ? , tipo = ? where codigo = ? ";
$querytratada = $conn->prepare($query);
$querytratada->bind_param("sssi",$login,$senha,$status,$codigo);
$querytratada->execute();
if ($querytratada->affected_rows > 0)
{
$resposta = 'ok';
}
else
{
$resposta = 'erro';
}
}
?>
如果我不更改字段值中的至少1个,则查询返回:受影响的行= 0
答案 0 :(得分:0)
感谢奈杰尔,我设法验证了结果。
我正在使用“ affected_rows” 来验证错误,但是如果用户未进行任何更改,我的代码将作为错误返回。
使用“行匹配” 和“警告” ,我可以确保查询没有错误。
我针对该问题的最终代码: preg_match_all('/(\ S [^:] +):(\ d +)/',$ conn-> info,$ querytratada); $ info = array_combine($ querytratada [1],$ querytratada [2]);
Public Sub AddMenu()
Dim menu As CommandBar
' Ugly workaround for multiple menus
On Error GoTo Handler
While True
Application.CommandBars(TOOLBAR_NAME).Delete
Wend
Handler:
'Just go on
Set menu = Application.CommandBars.Add(MENUNAME)
With menu
' [Do menu config]
End with
End Sub
无论如何,再次感谢奈杰尔!