MySQL - "数据库查询中的意外输入字段参数。"

时间:2014-11-24 03:16:56

标签: php mysql

以下是代码:

<?php

function widget_hello_world($vars) {

$username = "database_user";
$password = "database_password";
$hostname = "localhost"; 

//connection to the database
$dbhandle = mysql_connect($hostname, $username, $password)
 or die("Unable to connect to MySQL");
echo "Connected to MySQL<br>";

//select a database to work with
$selected = mysql_select_db("database_name",$dbhandle)
  or die("Could not select database!");

$test1 = mysql_query("select COUNT(*) FROM Table WHERE `Status`='new'");

mysql_close($dbhandle);

    $content = '<table class="table">
<thead><tr><th style="text-align:left;">Title</th><th style="text-align:left;">Data</th></tr></thead>
<tbody>

<tr><td>Test Data 1</td><td>{$test1}</td></tr>
<tr><td>Test Data 2</td><td>{$test2}</td></tr>
<tr><td>Test Data 3</td><td>{$test3}</td></tr>
</tbody>
</table>';

    return array( 'title' => 'Hellow World', 'content' => $content );

}

add_hook("AdminHomeWidgets",1,"widget_hello_world");

?>

这是我访问该页面时收到的错误消息:

Connected to MySQL
Unexpected input field parameter in database query.

显然它正在连接数据库,但它说查询存在问题。

起初我认为问题在于这一行:

$test1 = mysql_query("select COUNT(*) FROM Emails WHERE `Status`='new'");

但是,即使我删除该行,也会继续发生同样的错误。我做错了什么?

2 个答案:

答案 0 :(得分:0)

似乎这个错误发生在mysql_close($ dbhandle);

然而,我也注意到保留字&#34;表&#34;应该回溯以防止无效的查询。您的回调例程中的某些内容可能是全局的,并且会影响连接。

另外,请使用:

echo mysql_error();

在查询期间查看任何mysql错误。

答案 1 :(得分:0)

尝试单独检查所选的数据库,例如:

 <?php $con = mysql_connect('localhost', 'root', 'mypass'); 
    $selected_db = mysql_select_db('DB Name here'); 
    if (!$selected_db) 
       { 
         die ('Database not selected : ' . mysql_error()); 
       } 
 ?>

如果显示“未选择数据库”,请检查mysql_select_db()内数据库的拼写。您还可以对mysql_close();发表评论,以查看错误是否仍然存在。

另一方面,最好使用mysqli_因为mysql_已被弃用,或者更好地使用PDO