我之前对 mysqli 很陌生,我正在 mysql 中编写查询,但 mysqli 更高级,所以我是第一次使用它。下面是我的php代码。
function clean($str) {
$str = @trim($str);
if(get_magic_quotes_gpc()) {
$str = stripslashes($str);
}
return mysql_real_escape_string($str);
}
$email = clean($_POST['email']);
$password = clean($_POST['password']);
//$password =md5($password);
if(empty($res['errors'])) {
$result = $mysqli->query("SELECT uid FROM users where email='$email' and password = '$password'");
if($result->num_rows == 1){
$res['success'] = true;
}
else{
array_push($res['errors'], 'Invalid login details');
$res['success'] = false;
}
}else{
$res['success'] = false;
}
echo json_encode($res);
}
Run Code Online (Sandbox Code Playgroud)
clean 函数没有按预期工作,因为如果我输入的用户名和密码正确,sql 查询将返回 false。因此,这似乎在 mysqli 情况下无效。
我正在尝试创建一个激活页面,该页面将从URL获取API和ACT代码.
然后我试图在这些代码上查询数据库以检查它们是否有效.
如果它们无效,我想回应一个错误说明 echo "<strong><font color=red>Your Activation Code has Expired, or Your Activation Code is not Valid!</font></strong>";
如果它有效,那么我想用更新 2nd SQL Query - "UPDATE users SET status='1', date_activated='$Activation_Date', Activation='' WHERE Activation='$Activation' AND API='$API' AND status='0'"
如果URL中没有API和ACT代码,我想回复"内容"
<?
require 'admin/config.php';
require 'Connection.php';
error_reporting(E_ALL);
$API = $_REQUEST['api'];
$Activation = $_REQUEST['act'];
$sql= mysql_query("SELECT * WHERE Activation='$Activation'");
if ($sql = 0) { echo"ERROR";}
else {
$Activation_Date = date('m-j-y - h-iA');
$sql = mysql_query("UPDATE users
SET status='1', date_activated='$Activation_Date', Activation=''
WHERE Activation='$Activation' AND API='$API' AND status='0'");
if($sql …Run Code Online (Sandbox Code Playgroud) 我想检查一下if ($numRows >= 1)它应该返回一些东西。
当我使用时$con->mysql("{QUERY}"),它有效。
但当我使用时$stmt = $con->prepare("{QUERY}"),它不起作用。
有人有线索吗?
<?php
if ($result = $con->query("SELECT username FROM users WHERE username = 'test'")) {
$numRows = $result->num_rows;
echo $numRows;
}
?>
Run Code Online (Sandbox Code Playgroud)
结果:1
<?php
$name = 'test';
$stmt = $con->prepare("SELECT username FROM users WHERE username = ?");
$stmt->bind_param('s', $name);
$name = 'test';
$stmt->execute();
$numRows = $stmt->num_rows;
echo $numRows;
?>
Run Code Online (Sandbox Code Playgroud)
结果:0
检查用户名和电子邮件已存在于 php mysql 中,我已检查每个输入是否为空,如果没有空则检查用户名和密码是否已在数据库中,如果它不在数据库中,则 echo ALRIGHT,代码工作正常但问题是,当输入新条目时,它的打印效果不佳。
这是代码:
<?php
error_reporting(E_ALL & ~E_NOTICE);
require_once('dbcon.php');
if(isset($_POST["create"]))
{
if (isset($_POST['username']) && !empty($_POST['username'])) {
$username=mysqli_real_escape_string($conn,trim($_POST['username']));
}else{
$empty_username="Username Cannot be empty.";
echo $empty_username.'<br>';
}
if (isset($_POST['email']) && !empty($_POST['email'])) {
$email=mysqli_real_escape_string($conn,trim($_POST['email']));
}else{
$empty_email="Email cannot be empty.";
echo $empty_email.'<br>';
}
if (isset($_POST['category']) && !empty($_POST['category'])) {
$category=mysqli_real_escape_string($conn,trim($_POST['category']));
}else{
$empty_category="Category cannot be empty.";
echo $empty_category.'<br>';
}
if (isset($_POST['password']) && !empty($_POST['password'])) {
$psw=mysqli_real_escape_string($conn,trim($_POST['password']));
}else{
$empty_password="Password cannot be empty";
echo $empty_password.'<br>';
}
if (isset($_POST['re_password']) && !empty($_POST['re_password'])) {
$repsw=mysqli_real_escape_string($conn,trim($_POST['re_password']));
}else{ …Run Code Online (Sandbox Code Playgroud) 我正在使用以下代码,这对我不起作用.
$con=mysqli_connect("localhost","root","","my_db");
$check="SELECT COUNT(*) FROM persons WHERE Email = '$_POST[eMailTxt]'";
if (mysqli_query($con,$check)>=1)
{
echo "User Already in Exists<br/>";
}
else
{
$newUser="INSERT INTO persons(Email,FirstName,LastName,PassWord) values('$_POST[eMailTxt]','$_POST[NameTxt]','$_POST[LnameTxt]','$_POST[passWordTxt]')";
if (mysqli_query($con,$newUser))
{
echo "You are now registered<br/>";
}
else
{
echo "Error adding user in database<br/>";
}
}
Run Code Online (Sandbox Code Playgroud)
mysqli_result类的对象无法在C:\ xampp\htdocs\Exp\welcome.php中转换为int
我有这个PHP代码,它选择一个简单的值:
$name = $mysqli->query('SELECT name FROM users WHERE id = ' . $id . ' LIMIT 1')->fetch_object()->name;
Run Code Online (Sandbox Code Playgroud)
现在,如果结果为0,则抛出错误.
如果没有结果,我想要返回一个默认值,如"No name".
有什么建议?
我想检查我的数据库中是否已存在用户名.如果是,我想重定向回我的注册页面.我的代码用于添加用户名,但不检查用户名是否存在.请帮忙!!!这是register.php页面的代码.代码完全跳过检查"用户名"并插入数据库(如果存在或不存在).
<?php
error_reporting (E_ALL ^ E_NOTICE);
include ('dbconn.php');
session_start();
$GLOBALS[$error_message];
$GLOBALS[$username];
if(isset($_POST['submit']))
{
$error = array();
if(empty($_POST['username']))
{
$error[] = 'Please enter a username. ';
}
else
{
$username = mysqli_real_escape_string($connection, $_POST['username']);
}
if(empty($_POST['password']))
{
$error[] = 'Please enter a password. ';
}
else
{
$password = mysqli_real_escape_string($connection,$_POST['password']);
}
if(empty($_POST['cpassword']))
{
$error[] = 'Please confirm password. ';
}
else
{
$cpassword = mysqli_real_escape_string($connection,$_POST['cpassword']);
}
if($password == $cpassword)
{
$mainpassword= $password;
}
else
{
$error[] = 'Your passwords do not match. …Run Code Online (Sandbox Code Playgroud) 我正在创建一个登录表单,但我没有成功登录时遇到问题.我的表单看起来像这样
<form method="post" action="phpScripts/loginProcess.php">
<input type="text" name="uname" value="" placeholder="Username">
<input type="password" name="pass" value="" placeholder="Password">
<input id="submit" type="submit" value="submit">
</form>
Run Code Online (Sandbox Code Playgroud)
我已经检查过,我正在连接数据库,我的uname和pass都是正确的.我经过多次双重检查.问题在我的查询中.这是loginProcess.php文件
<?php
require_once ('dbconn.php');
if(isset($_POST['login'])){
$uname = mysqli_real_escape_string($_POST['uname']);
$pass = mysqli_real_escape_string($_POST['pass']);
$query = mysql_query ("SELECT * FROM staff WHERE uname='$uname'");
$numrows = mysql_num_rows($query);
if ($numrows !=0){
die("Success!!");
}
else{
die("That user doesnt exist");
}
}
else{
echo "Username or Password incorrect";
}
?>
Run Code Online (Sandbox Code Playgroud)
在Fred-ii的帮助下,我能够找出错误并真正快速解决登录问题!我想提供我用来登录的代码,以防其他人遇到这个问题.
这是我用来登录的代码.我觉得我可以使用execute和$ userSql/$ pwSql减少冗余.任何建议清理这一点将不胜感激!
<?php
ini_set('display_errors', 1); error_reporting(E_ALL);
require_once ('dbconn.php');
$uname = $_POST['uname'];
$pass …Run Code Online (Sandbox Code Playgroud) 当我在我的表单中键入代码时,我希望我的PHP代码检查提交代码存在于数据库中然后运行MySqli查询.我试图这样做,但我得到错误Cannot use isset() on the result of an expression (you can use "null !== expression" instead)我已经搜索了问题但没有一个确实帮助我解决或理解我的问题.
形成
<p><b>Skriv in din laddkod nedan och tryck på "Ladda"</b></p>
<form action="laddaklar.php" method="post">
<input type="text" name="laddkod"/>
<input type="submit" name="submit" value="Ladda" />
</form>
Run Code Online (Sandbox Code Playgroud)
PHP
<?php
session_start();
$mysqli = NEW MySQLI ('localhost', 'root', '', 'ph');
$laddkod = isset($_POST['laddkod']) ? $_POST['laddkod'] : '';
$kod= "SELECT refill from card_refill";
$result = $mysqli->query($kod);
if(isset($_POST['submit'] && $laddkod==$result)){
$resultSet = $mysqli->query ("UPDATE card_credit SET value= value + (select credit …Run Code Online (Sandbox Code Playgroud)