相关疑难解决方法(0)

PHP检查用户是否存在PDO

我正在设置一个函数,以检查users我的数据库中的表中是否存在传递的用户名.为此,我使用以下代码:

function usernameCheck($username) {
    $con = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD );
    $stmt = $con->prepare("SELECT username FROM users WHERE username = ':name'");
    $stmt->bindParam(':name', $username);
    $stmt->execute();

    if($stmt->rowCount() > 0){
        echo "exists!";
    } else {
        echo "non existant";
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,无论我尝试什么设置$username,我都无法得到任何exists!回报.我已经尝试改变它来检查一个额外的列,比如userID,但它仍然不起作用.我认为我的语法是正确的,但我是PDO的新手,所以我可能错过了一些容易修复的东西.

谢谢.

php mysql pdo

2
推荐指数
1
解决办法
1万
查看次数

致命错误:调用未定义的方法mysqli :: error()

我可以连接,但是当谈到准备好的声明时,我得到了错误.有什么不对吗?

码:

    // Open connection
    $db = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE);

    //check connection
    if (mysqli_connect_errno()) {
        printf("Connect failed: %s\n", mysqli_connect_error());
        exit();
    }

    // Create statement object
    $stmt = $db->stmt_init();   

    // sql statement
    $sql = "INSERT INTO ch_users ('uid','admin','password','directory','size','format','locationid') VALUES (?, 1, ?, ?, ?, ?, 1)";

    // Create a prepared statement
    $stmt = $db->prepare($sql) or die($db->error());
Run Code Online (Sandbox Code Playgroud)

php mysqli

1
推荐指数
1
解决办法
7481
查看次数

我的SQL/PHP语法有什么问题?

所以我在我的网站上设置了一个下载数据库,使我能够跟踪下载次数,并且我正在尝试为我和我的同胞设置一个前端,以便将新的下载插入到数据库中.我主要用PHP设置前端.

我的分页设置方式消除了我的表单发布的可能性,所以我有JS序列化数据并重新加载页面,然后我在PHP中反序列化数据,将值粘贴到mysql查询中,并尝试运行它.

这是我的SQL代码在PHP中的样子:

$sql  = "INSERT INTO dl (id, file, desc) VALUES ('$idd', '$file', '$desc')";
Run Code Online (Sandbox Code Playgroud)

哪个变成了这个字符串:

INSERT INTO dl (id, file, desc) VALUES ('a56', 'test.zip', 'cake')
Run Code Online (Sandbox Code Playgroud)

但是当页面尝试运行它时,我收到此错误:

您的SQL语法有错误; 检查与MySQL服务器版本对应的手册,以便在'desc'附近使用正确的语法VALUES('a56','test.zip','cake')'在第1行

而且运行查询的代码行不在第1行这一事实加剧了它的怪异性.它在第28行.

任何帮助表示赞赏:)

php mysql

1
推荐指数
1
解决办法
203
查看次数

为什么我的SELECT查询失败

我在试图弄清楚为什么$query2失败时遇到了问题.我一遍又一遍地看着这段代码,但无法弄清楚.

这是失败的代码行..

$query2 = mysqli_query($con,"SELECT * FROM forum_topics WHERE category-id='".$cid."' ORDER BY topic_reply_date DESC")
    or die ("Query2 failed: %s\n".($query2->error));
Run Code Online (Sandbox Code Playgroud)

有没有人看到我失踪的东西会导致失败?

$user = new User();
if(!$user->isLoggedIn()) {
    Redirect::to('index.php');
}
$logged = $user->isLoggedIn();
$con = mysqli_connect("localhost", "root", "", "db");
$cid = $_GET['cid'];
$userid = ( isset( $_SESSION['user'] ) ? $_SESSION['user'] : "" );

if(isset( $_SESSION['user'])) {
    $logged = " | <a href='forum_create_topic.php?cid=".$cid."'>Create a new topic</a>";
}
$query = mysqli_query($con,"SELECT * FROM forum_categories WHERE id='".$cid."' LIMIT 1");
$numrows = mysqli_num_rows($query);
if($numrows …
Run Code Online (Sandbox Code Playgroud)

php mysql select mysqli

1
推荐指数
1
解决办法
155
查看次数

插入记录PHP/PDO抛出错误

我正在尝试构建一个简单的PHP记录插入,但我似乎无法让它工作,它一直说我的语法有错误.

这不会出现在实时生产服务器上,这仅限于内部(我的使用),因此注入/攻击不是问题.

代码:

<?php
$servername = "server";
$username = "un";
$password = "p";
$dbname = "db";

$title = $_POST['title'];
$firstname = $_POST['firstname'];
$surname = $_POST['surname'];
$gender = $_POST['gender'];
$address = $_POST['address'];
$dob = $_POST['dob'];
$evetelephone = $_POST['eve-telephone'];
$daytelephone = $_POST['day-telephone'];
$occupation = $_POST['occupation'];
$email = $_POST['email'];
$hearabout = $_POST['hear-about'];
$consent = $_POST['consent'];
$readrules = $_POST['readrules'];
$injury = $_POST['injury'];
$questions = $_POST['questions'];
$gymrisk = $_POST['gymrisk'];
$rules  = $_POST['rules'];
$remove = $_POST['remove'];
$fullname = $_POST['fullname'];
$signature = 'test';/*$_POST['signature'];*/

try {
    $conn …
Run Code Online (Sandbox Code Playgroud)

php mysql pdo

1
推荐指数
1
解决办法
58
查看次数

MySQL在两个日期之间的查询作为时间戳

我一直在尝试从我的数据库中选择两个默认日期之间的项目:现在和60天前.但是,我尝试的所有查询都不起作用.

这是我尝试过的:

$Now = date("Y-m-d");
$Before = date("Y-m-d", strtotime("-60 days");

// This is try1
$sql = "SELECT * FROM myTable WHERE myTimestamp BETWEEN " . $Before . " AND " . $Now;  

// This is try2
$sql = "SELECT * FROM myTable WHERE myTimestamp >= " . $Before . " AND myTimestamp <= " . $Now; 
Run Code Online (Sandbox Code Playgroud)

我猜对了如何做到这一点.我已经查看了与此问题相同的其他问题,但没有提出任何解决方案.

请注意:这些查询不会出错.他们只是没有找回任何东西.我还习惯get_defined_vars()在页面上打印日期.这是他们展示的:

[Now] => 2016-01-07
[Before] => 2015-11-08
Run Code Online (Sandbox Code Playgroud)

php mysql

1
推荐指数
1
解决办法
1043
查看次数

预准备语句的 PDO 多参数绑定

我在 PDO 中有一个带有多个参数的准备好的语句,有没有办法将参数绑定在组中,或者链接调用以避免繁琐的调用bindParam每个项目?

现在看起来是什么样子(我在其他地方有更多参数化查询):

$stmt = $pdo->prepare("INSERT INTO users (name, pass, mail, created, timezone_name, hash_pass, salt) VALUES (:name, :pass, :mail, :created, :timezone, :hashed, :salt") ;

$stmt->bindParam(':name', $name, PDO::PARAM_STR);
$stmt->bindParam(':pass', $pass, PDO::PARAM_STR);
$stmt->bindParam(':mail', $mail, PDO::PARAM_STR);
$stmt->bindParam(':created', $date, PDO::PARAM_INT);
$stmt->bindParam(':timezone', $timezone, PDO::PARAM_STR);
$stmt->bindParam(':hashed', $hash, PDO::PARAM_STR);
$stmt->bindParam(':salt', $salt, PDO::PARAM_STR);

$stmt->execute();
Run Code Online (Sandbox Code Playgroud)

php mysql pdo

1
推荐指数
1
解决办法
3733
查看次数

SQL 语法错误 MariaDB 服务器版本,在第 1 行的“@hotmail.com,Employee)”附近使用正确的语法

我正在尝试使用 php 制作一个注册页面,然后当我在下面编写 mysql 语句时,它不会接受它,而是会吐出一个错误,我现在正试图找出这个错误几个小时。

   $query = "INSERT INTO users(username, password,name,surname,email,role)VALUES($username, $password,$name,$lastname,$email,$role)";
   $stmt = mysqli_prepare ($dbh, $query) or die(mysqli_error($dbh));
Run Code Online (Sandbox Code Playgroud)

显示的错误是:

您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,了解在第 1 行“@hotmail.com,Employee)”附近使用的正确语法。

php mysqli

1
推荐指数
1
解决办法
10万
查看次数

MySQL Order by date with GROUP BY DATE FORMAT 是按字母顺序排列的

这是我的查询:

Select Date_format(`date`, '%b %Y') as 'Categories',
..... as 'a1',....... as 'a2'
FROM table1
GROUP BY Date_format(`date`, '%b %Y')
ORDER BY Date_format(`date`, '%b %Y') ASC
Run Code Online (Sandbox Code Playgroud)

答案是按字母顺序排列的,因为date_format将日期转换为字符串,我需要按日期排序,但是,分组是问题所在。我group by只需要为 Date_format('date','%b %Y')

请给出解决方案

mysql sql mariadb

1
推荐指数
1
解决办法
850
查看次数

SQL语句出现问题

我正在尝试使用表单和PHP函数将值输入到数据库表中.PHP似乎很好,因为它创建的SQL语句看起来没问题,但数据库总是会抛出错误.这是我的代码生成的SQL语句(具有任意值):

INSERT INTO Iteminfo ('itemName', 'itemSeller', 'itemCategory', 'itemDescription', 'itemPrice', 'itemPostage', 'itemBegin', 'itemEnd', 'buynow', 'itemPicture')
values ('gorillaz album', 'ben', 'music', 'new one ', '5.00', '1.00', '2010-03-15 14:59:51', '2010-03-16 14:59:51', '0', 'http://www.thefader.com/wp-content/uploads/2010/01/gorillaz-plastic-beach.jpg')
Run Code Online (Sandbox Code Playgroud)

当我使用PHP函数来评估查询时以及当我使用phpMyAdmin手动输入查询时,这会引发错误.但是,我看不出它有什么问题.任何人都可以对此有所了解吗?除了itemPrice和itemPostage(存储为DECIMAL(4,2))以及itemBegin和itemEnd之外,所有字段都是VARCHAR值,它们存储为DATETIME.

php sql syntax

0
推荐指数
1
解决办法
112
查看次数

标签 统计

php ×9

mysql ×7

mysqli ×3

pdo ×3

sql ×2

mariadb ×1

select ×1

syntax ×1