- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我定义了变量 $row_id1(例如 $row_id1 = 1;)
在 mysql 中有一个名为 Number 的列。
要选择列 Number,如果列中存在 $row_id,要获取(获取、定义)该值。实际上是想检查 Number 列中是否存在 $row_id 值。
代码有什么问题?
$stmt = $db->prepare("SELECT Number FROM 2_1_journal WHERE Number = :Number1");
$stmt->bindParam(':Number1', $row_id1); //value from $_POST
$stmt->execute();
$Number1 = $stmt->fetchAll(PDO::FETCH_ASSOC); // seems here something is wrong
echo $Number1 .' $Number1<br>';
在输出中我得到数组 $Number1
好像是一个简单(愚蠢)的问题,但搜索了几个小时却没有解决方案
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
更新代码
这部分与问题无关(仅供引用)
require($_SERVER['DOCUMENT_ROOT'] . "/_additionally_protected/session.class.php");
$session = new session();
// Set to true if using https
$session->start_session('_a', false);
session_regenerate_id();
//require($_SERVER['DOCUMENT_ROOT'].'/_additionally_protected/request_blocker.php'); //slow page load
require($_SERVER['DOCUMENT_ROOT'].'/_measure_time_start.php');
require($_SERVER['DOCUMENT_ROOT'].'/_additionally_protected/db_config.php');
header('Content-type: text/html; charset=utf8');
require($_SERVER['DOCUMENT_ROOT'] . "/only_private/blackhole.php");
ini_set('session.bug_compat_warn', 0);
ini_set('session.bug_compat_42', 0);
这与问题有关(这里我从输入中获取值)
if(get_magic_quotes_gpc())
$row_id1 = htmlspecialchars(stripslashes($_POST['row_id1']));
else
$row_id1 = htmlspecialchars($_POST['row_id1']);
echo $row_id1 .' row_id1 from $_POST<br>';
连接mysql
try {
$db = new PDO("mysql:host={$dbhost};dbname={$dbname};charset=utf8", $dbuser, $dbpass//, array(PDO::ATTR_EMULATE_PREPARES => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
//echo "Connected to database"; // check for connection
}
catch(PDOException $ex) {
//echo "An Error occured!"; //user friendly message
//print "Error!: " . $ex->getMessage() . "<br/>";
//some_logging_function($ex->getMessage());
exit;
}
在这里,我从 mysql 中获取最后一行的编号。后来我将 number+1 传递给 html 隐藏的输入字段。我的意思是在页面加载时我得到最后一个数字。如果用户点击按钮不执行代码。
//fetch last Number to pass to row_id and entry_id
if( !$_POST['register'] ) {
echo '!$_POST[register] <br>';
//+++++++++++++ now multiple PDO
// Select table with query
$stmt = $db->query("
SELECT Number FROM 2_1_journal ORDER BY Number DESC LIMIT 1
");
// Set fetching mode
$stmt->setFetchMode(PDO::FETCH_ASSOC);
// Assign $row as your key to access Table fields
foreach ($stmt as $row) :
echo $row['Number'] .' $row[Number] On page load (reload) get number of last row in mysql; to pass to Entry ID and rowid<br>';
$_SESSION['last_number_from_mysql'] = $row['Number'];
endforeach;
}//if( !$_POST['register'] ) {
session (上)
这是给我带来麻烦的部分//后者从数据库中获取数字以与行 ID 进行比较(隐藏)。旨在决定是否需要记录新行或是否更新现有行。代码在 $_POST 上执行。所以必须定义$row_id(上面定义)
if( $_POST['register'] ) {
如果用户只点击按钮然后执行代码
echo $row_id1 .' row_id1 before select Number where Number is $row_id1<br>';
这是检查。我看到 row_id1 号;这意味着该号码已收到。而就在下面想要使用它
$stmt = $db->prepare("SELECT Number FROM 2_1_journal WHERE Number = :Number1");
$stmt->bindParam(':Number1', $row_id1);
$stmt->execute();
echo $Number1 = $stmt->fetchColumn() .' $Number1<br>';
仅当点击按钮 2 次时才会回显
这里是html输入
<input type="tex" name="row_id1" id="row_id1" value="
<?php
//if( ($_POST['register']) === 'Save draft' ) {
//echo $_POST['row_id1'];
//}
//else {
echo ($_SESSION['last_number_from_mysql'] + 1);
//}
?>
">
最佳答案
您必须根据您想要的结果使用 fetch 函数。
如果您需要单个标量值,则永远不需要列名:
$Number1 = $stmt->fetchColumn();
如果要返回的结果很多,但是每行只有一列,就不需要再输入列名了:
$numbers = $sth->fetchAll(PDO::FETCH_COLUMN);
它将返回一个数字数组。
如果您需要一行包含多个值,请使用 fetch()
如果您需要行数组,请使用 fetchAll()
关于php pdo 只从 mysql 获取一个值;等于变量的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16130698/
PHP查询: prepare('SELECT * FROM Locations WHERE user_id = :id LIMIT 0, 5'); $query->bindParam(":id
到目前为止我一直在使用 PDO->bindParam 但是在阅读手册时我发现 PDO->bindValue 我可以告诉 PDO->bindValue 按值传递,而 PDO->bindParam 按引用
我使用PDO进行MySQL数据库连接、选择、更新和删除。 但是我在选择带有特殊字符的行时遇到问题,例如,我想选择带有“Judge-Fürstová Mila”的页面标题, 表页, id titl
我使用的是 PHP 5.2.9 和 Apache 2.2.11 以及 mysql 5.1.32 为什么我不能禁用 PDO::ATTR_EMULATE_PREPARES ? 下面是代码: false)
当 PDO::ATTR_PERSISTENT = true 时,PDO::exec 和 PDO::query 之间似乎存在差异。当使用PDO::exec时,连接将不会被重用,并最终导致MySQL出现“
我正在尝试调整 Zend Skeleton App 以使用 ODBC 连接。我能够在 Zend 之外设置 PDO 连接(同一个表、服务器、所有内容),如下所示: new PDO('odbc:DRIVE
我正在使用 XAMPP 3.2.1 在 Windows 7 上使用 PDO,但在使其正常工作时遇到问题,即使它可以在我的共享托管服务器。 settings.php db.php setAttribu
我正在尝试使用以下代码从 get 变量中获取结果,我使用了另一个代码(在下面列出)并且它有效但是在使用它时无法逃脱,我不知道我有什么做错了,但我需要帮助,我刚刚开始 PDO,所以是的,我是个白痴 :D
我有这个代码 try { $dbh = new PDO('mysql:host=localhost;dbname=db_informations', 'root', ''); $dbh
在我的本地开发机器 (MAMP) 上,我的 MySQL 查询返回正确的大小写。但是,在我的共享托管服务器上,使用 fetch(PDO::FETCH_ASSOC); 时,我的结果是小写的 我试过以下方法
我正在使用这个 PDO 连接: try{ $db=new PDO(" mysql:host=localhost; dbname=...", "dbu...", "pass", array(PDO::M
我需要将 PDO 连接从 controller 传递到 cart 类, function __construct($connection) { $this->cart = new cart($
位于 PHP.net 的 PDO 交易示例表明 PDO::exec() 是事务处理的,但是没有这样的例子使用 PDO::query()。 事务是否涵盖 PDO::query()? 此外,据我所知,PD
几天来我一直在使用来自 http://www.mamp.info 的 MAMP Pro 3.07 . 很棒的工具,一切正常。 但是现在我遇到了问题,对于一个新项目,我需要连接到 MSSQL。 我在 w
我正在尝试在我的 PHP 代码中使用 PDO 模块来连接到数据库。我已经阅读并搜索了类似的主题,但我无法弄清楚我做错了什么。请帮我解决问题。 Apache版本:Apache/2.2.21 (Win32
这个问题不太可能帮助任何 future 的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visit
我使用 PDO 连接到我的数据库,我不知道哪种方法比更新、删除和插入、PDO::exec 或 PDO::excute 的另一种方法更好。我应该使用哪个? 最佳答案 虽然这两种方法具有相似的命名(exe
如何在 Codeigniter 中设置 PDO 数据库句柄的属性(PDO::ATTR_ERRMODE)? 最佳答案 我认为更好的选择是使用 MY_Model(然后您对其进行扩展,然后它在整个应用程序中
从 mysql 切换到 PDO 我注意到 fetch 方法改变了 PDO 对象本身!例如: $res=$ps->fetchAll(); echo($res[0]['Mail']); //it'ok /
嗨,我正在使用 PDO 为 mysql 开发一个基本的数据库连接类,但是当我 var dump 返回结果时,它告诉我我有 2 个对象:object(PDO)[2]。不应该只有一个吗? 这是迄今为止我的
我是一名优秀的程序员,十分优秀!